PHP 有一个内置的 mhash_keygen_s2k() 函数,用于在用户提供的密码的帮助下根据给定的散列创建密钥。
它是 OpenPGP 文档 (RFC 2440) 中指出的加盐 S2K 算法。
它对于计算校验和、消息摘要等特别方便。
请注意,为了检查密钥,还应该知道盐。
mhash_keygen_s2k() 函数的语法如下所示:
string mhash_keygen_s2k(int $hash, string $password, string $salt, int $bytes)
从语法上可以看出这个函数接受四个参数。
这些参数的说明如下:
- $Hash:保留哈希 ID。换句话说,它持有 mhash_name 常量之一。
- $Password:保存用户的密码。
- $Salt:它是一种随机数据,用作单向函数的添加输入,用于散列密码、数据或者密码短语。它的长度是固定的(8 个字节)。
- $Bytes: T它通过密钥的长度来定义密钥,以字节为单位。
定义了函数的参数之后,我们来看看它可以返回什么值。
成功时,它将以字符串形式返回创建的密钥,否则返回 FALSE。
为了更好的理解,让我们举例说明:
<?php $inputString = "p4ssw0rd"; $salt = "abcjkhg111a"; $bytes = "8"; // //bin2hex 用于将二进制转换为十六进制字符串 print_r(bin2hex(mhash_keygen_s2k(MHASH_MD5, $inputString, $salt, $bytes))); ?>
输出将是:
df9f3fb1cbc33ada
日期:2020-06-02 22:15:55 来源:oir作者:oir
