PBKDF2WithHmacSHA256
アルゴリズムがJavaで生成するのと同じハッシュをPHPで生成する必要があります。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)'はあなたが望むものだと思っていますが、私は肯定的ではありません - 試してみてください。 –
最初に、この関数の第1引数として 'sha256'を指定してください。 –
Java関数から入力と出力のペアを投稿してください。 – user151841