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

如何使用scrypt加密在Java中使用KeyPairGenerator创建的私钥?我想使用密码来保护私钥,因此即使拥有私钥和数据,也没有人可以使用私钥解密我加密的数据。 (如果您不提出其他建议,我将使用BouncyCastle API)

谢谢

xpniree 回答:如何使用scrypt通过密码加密私钥

要使用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);
本文链接:https://www.f2er.com/3097106.html

大家都在问