如何在 WordPress 中测试 HashPassword?
How to test HashPassword in WordPress?
我想测试(单元测试)HashPassword($password)
来自 WordPress 的方法。
我如何检查 HashPassword("123123") return 它的哈希值是否正确?
例如,我想做这样的事情:
$hashFor123123 = "$P$P)230230832482349823";
$result = HashPassword("123123");
$this->assertSame($hashFor123123, $result);
但是,HashPassword 方法每次 return 都是一个带有哈希的新字符串。这就是为什么我不能断言。
如何测试?
每次调用HashPassword
结果都不一样的原因是你的密码在哈希之前是prefixed by a random salt。
要将明文密码与已知哈希进行比较,您必须调用 CheckPassword
。
密码哈希使用随机 salt, so each time you hash the same password you'll get a different value back. The theory is explained here,即使 WordPress 不使用 php 密码哈希函数,而是使用他们自己的。您无法比较哈希;您只能检查给定的未散列密码是否与散列匹配。
随机盐击败了cybercreeps对rainbow lookup tables to recover passwords given their hashes. This helps keep your users' passwords secret even if a cybercreep manages to steal your wp_users table. Defense in depth的使用,它被称为。
在 WordPress 中,您可以对密码进行散列处理,然后使用 wp_hash_password() and wp_check_password(), 类似的方法检查它。
$hash = wp_hash_password( '123123' );
if ( wp_check_password( '123123', $hash )) {
/* it worked */
} else {
/* it did not work */
}
不清楚为什么值得花时间对该子系统进行单元测试。它在世界各地每天被用于生产数十亿次。
我想测试(单元测试)HashPassword($password)
来自 WordPress 的方法。
我如何检查 HashPassword("123123") return 它的哈希值是否正确?
例如,我想做这样的事情:
$hashFor123123 = "$P$P)230230832482349823";
$result = HashPassword("123123");
$this->assertSame($hashFor123123, $result);
但是,HashPassword 方法每次 return 都是一个带有哈希的新字符串。这就是为什么我不能断言。
如何测试?
每次调用HashPassword
结果都不一样的原因是你的密码在哈希之前是prefixed by a random salt。
要将明文密码与已知哈希进行比较,您必须调用 CheckPassword
。
密码哈希使用随机 salt, so each time you hash the same password you'll get a different value back. The theory is explained here,即使 WordPress 不使用 php 密码哈希函数,而是使用他们自己的。您无法比较哈希;您只能检查给定的未散列密码是否与散列匹配。
随机盐击败了cybercreeps对rainbow lookup tables to recover passwords given their hashes. This helps keep your users' passwords secret even if a cybercreep manages to steal your wp_users table. Defense in depth的使用,它被称为。
在 WordPress 中,您可以对密码进行散列处理,然后使用 wp_hash_password() and wp_check_password(), 类似的方法检查它。
$hash = wp_hash_password( '123123' );
if ( wp_check_password( '123123', $hash )) {
/* it worked */
} else {
/* it did not work */
}
不清楚为什么值得花时间对该子系统进行单元测试。它在世界各地每天被用于生产数十亿次。