标签:
keytool -genkey -alias 别名 -keyalg RSA -keystore 文件名.jks
经过一番复杂的输入,生成的jks文件在桌面->我的文档根目录下,这个jks里包含了自动生成的私钥
keytool -export -alias 别名 -keystore 文件名.jks -storepass 密码 -file 文件名.cer
用私钥对数据签名,这里只贴核心代码,用时自行补全
1 KeyStore ks = KeyStore.getInstance("JKS"); 2 fis = new FileInputStream("路径\\文件名.jks"); 3 String storePassword = "上面生成jks时的密码"; 4 String storeAlias = "上面生成jks时的别名"; 5 ks.load(fis, storePassword.toCharArray()); 6 PrivateKey prikey = (PrivateKey) ks.getKey(storeAlias,storePassword.toCharArray());
7 String priKeyStr = Base64.getEncoder().encodeToString(prikey.getEncoded());//查看私钥用
8 System.out.println("私钥:"+priKeyStr);//查看私钥
9 //用私钥签名
1 is = new FileInputStream("路径\\文件名.cer");
2 CertificateFactory cf = CertificateFactory.getInstance("X.509");
3 X509Certificate cert = (X509Certificate) cf.generateCertificate(is);
4 PublicKey publicKey=cert.getPublicKey();
5 String pubKeyStr= Base64.getEncoder().encodeToString(publicKey.getEncoded());//查看公钥用
6 System.out.println("公钥:"+pubKeyStr);//查看公钥
7 //用公钥加密
服务器用私钥解出明文
标签:
原文地址:http://www.cnblogs.com/gengchangjing/p/4866817.html