0
我需要在PHP中生成与在Java中生成的PBKDF2WithHmacSHA256
算法相同的哈希。来自Java的“PBKDF2WithHmacSHA256”的PHP替代方案
我做了一些研究,发现两种功能,似乎是连接到PBKDF2
和HMAC
:
- hash_pbkdf2 - http://php.net/manual/en/function.hash-pbkdf2.php
- hash_hmac - http://php.net/manual/en/function.hash-hmac.php
我应该用什么PHP函数?原生PHP函数甚至有可能吗?
编辑#1
我的Java代码,相同的结果,我需要在PHP
public static byte[] derivateKey(char[] password, byte[] salt, int iterations, int keyLengthBits) {
try {
SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
PBEKeySpec spec = new PBEKeySpec(password, salt, iterations, keyLengthBits);
SecretKey key = skf.generateSecret(spec);
byte[] res = key.getEncoded();
return res;
} catch (NoSuchAlgorithmException | InvalidKeySpecException e) {
throw new IllegalStateException("Could not create hash", e);
}
}
我认为''hash_hmac('sha256',$ data,$ key)'是你想要的,但我不积极 - 尝试一下。 –
您应该首先将'sha256'作为此函数的第一个参数。 –
请从Java函数发布输入和输出对。 – user151841