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