在Android上使用SHA256的PBKDF2

Kow*_*own 7 encryption android sha256 pbkdf2

我想使用带有SHA256的PBKDF2生成密码的派生哈希.与此SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1")这项工作,但它使用SHA1.随着SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256")(或SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256","SC")与spongycastle一起)我有一个错误.

如何使用PBKDF2WithHmacSHA256成功生成哈希?

小智 18

如果您使用SpongyCastle的1.47或更高版本,您可以直接调用PBKDF2WithHmacSHA256:

PKCS5S2ParametersGenerator generator = new PKCS5S2ParametersGenerator(new SHA256Digest());
generator.init(PBEParametersGenerator.PKCS5PasswordToUTF8Bytes(password), salt, iterations);
KeyParameter key = (KeyParameter)generator.generateDerivedMacParameters(keySizeInBits);
Run Code Online (Sandbox Code Playgroud)

在BC <1.47的版本中,您无法指定SHA256摘要,并且默认为SHA1.