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