星空网 > 软件开发 > Java

java RSA 生成公钥私钥

/** * 引进的包都是Java自带的jar包 * 秘钥相关包 * base64 编解码 * 这里只用到了编码 */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 sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;public class CreateSecrteKey {    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 String getPublicKey(Map<String, Object> keyMap) throws Exception {    //获得map中的公钥对象 转为key对象    Key key = (Key) keyMap.get(PUBLIC_KEY);    //byte[] publicKey = key.getEncoded();    //编码返回字符串    return encryptBASE64(key.getEncoded());  }  //获得私钥  public static String getPrivateKey(Map<String, Object> keyMap) throws Exception {    //获得map中的私钥对象 转为key对象    Key key = (Key) keyMap.get(PRIVATE_KEY);    //byte[] privateKey = key.getEncoded();    //编码返回字符串    return encryptBASE64(key.getEncoded());  }  //解码返回byte  public static byte[] decryptBASE64(String key) throws Exception {    return (new BASE64Decoder()).decodeBuffer(key);  }  //编码返回字符串  public static String encryptBASE64(byte[] key) throws Exception {    return (new BASE64Encoder()).encodeBuffer(key);  }    //map对象中存放公私钥  public static Map<String, Object> initKey() throws Exception {    //获得对象 KeyPairGenerator 参数 RSA 1024个字节    KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(KEY_ALGORITHM);    keyPairGen.initialize(1024);    //通过对象 KeyPairGenerator 获取对象KeyPair    KeyPair keyPair = keyPairGen.generateKeyPair();        //通过对象 KeyPair 获取RSA公私钥对象RSAPublicKey RSAPrivateKey    RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();    RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();    //公私钥对象存入map中    Map<String, Object> keyMap = new HashMap<String, Object>(2);    keyMap.put(PUBLIC_KEY, publicKey);    keyMap.put(PRIVATE_KEY, privateKey);    return keyMap;  }  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();    }  }

 




原标题:java RSA 生成公钥私钥

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

淘宝卖家为什么要开始做速卖通?:https://www.ikjzd.com/articles/135997
为取代亚马逊,沃尔玛做出了这项变动!:https://www.ikjzd.com/articles/135998
英国税法大变!法国站“黑五”今日线!:https://www.ikjzd.com/articles/135999
2018年欧洲站点的变化和前景:https://www.ikjzd.com/articles/136
现在开始单干亚马逊 月入一万难吗?:https://www.ikjzd.com/articles/136000
黑五网一“家居”概念产品成爆款,转战线上成大趋势:https://www.ikjzd.com/articles/136001
天坛最佳攻略 天坛必玩景点:https://www.vstour.cn/a/408240.html
央视新址为什么会找回:https://www.vstour.cn/a/408241.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流