MySQL中的PASSWORD函数可以翻译成php中的代码:
function mysql_password($string){
$pass = strtoupper(
sha1(
sha1($string, true)
)
);
$pass = '*' . $pass;
return $pass;
}
它返回一个 41 个字符的哈希。
我担心这个功能,因为如果我运行:
SELECT PASSWORD('securepassword');
在任何设备上它返回相同的哈希:
*214C2FAF32F109AE748170BFABDDFB9B05889E64
当然,这意味着如果我的数据库遭到破坏,渗透者可以轻松地创建一个包含大量流行密码并匹配哈希值的彩虹表——这难道不是我应该担心的吗?
我希望 PASSWORD 功能对于每个设备都是独一无二的?我将如何让它对每个设备都独一无二?