我知道旧版mysql密码函数(4.1之前的版本)被认为是不安全的,但我不确定为什么。它被认为不安全的具体原因是什么?
*
+ 40字节)。pre-4.1 MySQL PASSWORD: 16 bytes
MD5: 32 bytes
SHA 1: 40 bytes
4.1+ MySQL PASSWORD: 41 bytes (40 bytes, prepended with an asterisk)
SHA-256: 64 bytes
SHA-512: 128 bytes
根据:旧版MySQL密码破解
使用旧密码格式创建16字节哈希,例如: 6f8c114b58f2ce9e 对于相同的密码,MySQL4.1哈希是41个字节长的: *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 表面上看,通过使用新密码提供的额外安全级别可能并不重要。然而,源代码已经在创意共用许可下发布,允许非常快速地破解旧的MySQL密码。 密码“a@4〜1b”的哈希值为2c28061c5bda971d。 使用上述破解程序,在一台两年前的笔记本电脑上不到1秒钟就可以破解此密码。 通过使用SQL注入攻击,未经许可的用户可能可以查看您的my.cnf文件。如果选择语句中的第二个参数正在屏幕上显示而没有正确转义,则在搜索框中输入此内容可能会在浏览器中呈现文件的内容: something' UNION ALL SELECT 1,(SELECT LOAD_FILE('/etc/my.cnf')),3,4,5,password FROM user ORDER BY '7如果未经授权的用户能够拦截您的哈希密码,那么很容易对它们进行暴力破解并获取明文密码。复杂的密码仍然难以破解,但是8个字符的密码将需要很少的时间。
由于MySQL密码哈希长度的更改,现在要对哈希进行暴力破解变得更加困难。