如何使用scrypt用密码加密私钥



如何使用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);

相关内容

  • 没有找到相关文章

最新更新