public static Map<Integer, String> genKeyPair() throws NoSuchAlgorithmException { //保存用戶級別公鑰和私鑰對 Map<Integer, String> keyMap = new HashMap<Integer, String>(); // KeyPairGenerator類用於生成公鑰和私鑰對,基於RSA算法生成對象 KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); // 初始化密鑰對生成器,密鑰大小為96-1024位 keyPairGen.initialize(1024,new SecureRandom()); // 生成一個密鑰對,保存在keyPair中 KeyPair keyPair = keyPairGen.generateKeyPair(); // 得到私鑰 RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); // 得到公鑰 RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); // 得到公鑰字符串 String publicKeyString = new String(Base64.encodeBase64(publicKey.getEncoded())); // 得到私鑰字符串 String privateKeyString = new String(Base64.encodeBase64((privateKey.getEncoded()))); // 將公鑰和私鑰保存到Map 0表示公鑰 1表示私鑰 keyMap.put(0, publicKeyString); keyMap.put(1, privateKeyString); return keyMap; }
RSA私鑰簽名和公鑰驗簽JAVA實現
https://www.jianshu.com/p/c3cd1919fcd0
https://my.oschina.net/u/4332949/blog/3449841
https://www.cnblogs.com/zhilu-doc/p/7074245.html