如何使用scrypt加密在Java中使用KeyPairGenerator
创建的私钥?我想使用密码来保护私钥,因此即使拥有私钥和数据,也没有人可以使用私钥解密我加密的数据。
(如果您不提出其他建议,我将使用BouncyCastle API)
谢谢
如何使用scrypt加密在Java中使用KeyPairGenerator
创建的私钥?我想使用密码来保护私钥,因此即使拥有私钥和数据,也没有人可以使用私钥解密我加密的数据。
(如果您不提出其他建议,我将使用BouncyCastle API)
谢谢
要使用KeyPairGenerator,您可以使用PBEKey和Parameters来加密密码支持的私钥
KeyPairGenerator generator = KeyPairGenerator.getInstance();
int count = 5;
keyPairGenerator.initialize();
KeyPair kPair = generator.genKeyPair();
byte[] privateKey = kPair.getPrivate().getEncoded();
String stringPb = "PBEWithSHA1AndDESede";
String password = "your_own_password";
SecureRandom rndm = new SecureRandom();
PBEParameterSpec paramSpec = new PBEParameterSpec(salt,count);
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory factory = SecretKeyFactory.getInstance();
SecretKey pbeKey = factory.generateSecret(keySpec);
Cipher cipher = Cipher.getInstance(stringPb);
cipher.init(ENCRYPT_MODE,pbeKey,paramSpec);
byte[] text = cipher.doFinal();
AlgorithmParameters parametres = AlgorithmParameters.getInstance();
parametres.init(paramSpec);
EncryptedPrivateKeyInfo encinfo = new EncryptedPrivateKeyInfo(parametres,text);