公钥私钥生成工具

来源:互联网 发布:大数据应用软件 编辑:程序博客网 时间:2024/05/24 04:36
/**
 *
 */
package com.hlmedicals.app.util;

import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.util.HashMap;
import java.util.Map;

import com.itextpdf.xmp.impl.Base64;


/**
 * @author dell
 *
 */
public class Keys {

        public static final String KEY_ALGORITHM = "RSA";

        public static final String SIGNATURE_ALGORITHM = "MD5withRSA";

        private static final String PUBLIC_KEY = "RSAPublicKey";

        private static final String PRIVATE_KEY = "RSAPrivateKey";

    

    public static void main(String[] args) {

            Map<String, Object> keyMap;
        
            try {
        
            keyMap = initKey();
        
            String publicKey =  getPublicKey(keyMap);
        
            System.out.println(publicKey);
        
            String privateKey =  getPrivateKey(keyMap);
        
            System.out.println(privateKey);
        
            } catch (Exception e) {
        
            e.printStackTrace();
    
        }  

    }

    public static String getPublicKey(Map<String, Object> keyMap) throws Exception {

             Key key = (Key) keyMap.get(PUBLIC_KEY);

             byte[] publicKey = key.getEncoded();

            // return encryptBASE64(key.getEncoded());
             
             return new String(new Base64().encode(publicKey));
    }

    public static String getPrivateKey(Map<String, Object> keyMap) throws Exception {

             Key key = (Key) keyMap.get(PRIVATE_KEY);

             byte[] privateKey =key.getEncoded();

             //return encryptBASE64(key.getEncoded());
             return new String(new Base64().encode(privateKey));
    }  

               
//
//        public static byte[] decryptBASE64(String key) throws Exception {               
//
//            return (new Base64()).decodeBuffer(key);               
//
//        }                                 
//
//                   
//
//        public static String encryptBASE64(byte[] key) throws Exception {               
//
//            return (new BASE64Encoder()).encodeBuffer(key);               
//
//        }       

        

    public static Map<String, Object> initKey() throws Exception {

    KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(KEY_ALGORITHM);

    keyPairGen.initialize(1024);

    KeyPair keyPair = keyPairGen.generateKeyPair();

    RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();

    RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();

    Map<String, Object> keyMap = new HashMap<String, Object>(2);

    keyMap.put(PUBLIC_KEY, publicKey);

    keyMap.put(PRIVATE_KEY, privateKey);

    return keyMap;

    }
}

0 0