昆明java培训
达内昆明广州春城路

18487146383

热门课程

【昆明达内Java培训】java RSA 生成公钥私钥

  • 时间:2016-10-24
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明达内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培训官网(km.Java.tedu.cn)!

上一篇:JavaMail邮件开发中带文本、图片、附件的邮件
下一篇:java中精度损失问题

达内培训小米MIX 2尊享版工艺精湛

程序猿教你java的创建和销毁对象

昆明java培训-程序猿带你入门到精通

昆明达内-有趣的轻量级图像浏览器

选择城市和中心
贵州省

广西省

海南省