我使用hash_pbkdf2()
算法从用户的密码中导出加密密钥,我这样做:
$salt = random_bytes(16);
$interactions = 250000;
$size = 256;
$encryptionKey = hash_pbkdf2(
"sha384",
$password,
$salt,
$interactions,
$size,
0
);
我的问题是我不知道如何处理$salt
,因为它是第一次随机生成的,但是在用户登录系统导出的时候,它应该是相同的。相同的加密密钥,通过这种方式,加密数据总是可以毫无问题地解密。
我必须用盐做什么?存储它(可能是加密的)还是不安全?