我需要在PHP中生成与在Java中生成的val df_attack = df
.withColumn("attack",
when($"sender_ip_1" === "10.0.0.3"
and ($"time_stamp_0").cast(TimestampType) > "07:19:00.005788", 0)
.otherwise(1))
算法相同的哈希值。
我做了一些研究,发现两个函数似乎与PBKDF2WithHmacSHA256
和PBKDF2
有关:
我应该使用哪些PHP函数?甚至可以使用本机PHP函数吗?
编辑#1
我的Java代码,我需要在PHP中实现相同的结果
HMAC
答案 0 :(得分:1)
您提供的Java代码基本上是hash_pbkdf2()
。你只需要传递正确的参数:
function derivateKey($password, $salt, $iterations, $keyLengthBits)
{
return hash_pbkdf2(
'sha256',
$password,
$salt,
$iterations,
$keyLengthBits / 8,
true
);
}
显然,PHP的hash_pbkdf2()
接受哈希算法作为参数,但可能存在一些棘手的差异:
true
才能使其成为符合规范。我唯一不确定的是key.getEncoded()
在您的示例代码中的作用......没有指定任何编码算法。
我发现一些文档暗示它应该是RAW,所以我提供的例子应该匹配它。如果它没有,你必须自己编码。