700 Software Asked: 2011-09-20 07:44:27 +0800 CST2011-09-20 07:44:27 +0800 CST 2011-09-20 07:44:27 +0800 CST MySQL:AES_ENCRYPT 如何将密码变成密钥? 772 我试图弄清楚如何为 AES_ENCRYPT 创建最佳安全密码。具体来说,密码应该有多长,以及它如何转换为 AES 通常使用的 128 位密钥长度。 mysql encryption 2 个回答 Voted atxdba 2011-09-20T18:38:13+08:002011-09-20T18:38:13+08:00 这真的不是一个 mysql 问题,更多的是一个“加密如何工作”的问题。如果你有时间消磨时间,你可能想看这个系列 http://www.youtube.com/watch?v=dlS5_qfxAss&feature=results_main&playnext=1&list=PLDCC9179604F435AB 这是我不久前遇到的密码强度的一个很好的解释 http://www.reddit.com/r/programming/comments/9pu3k/how_long_would_it_take_to_bruteforce_crack_an_aes/c0dv7sx 但请记住,如果密码存储在不安全的源代码中(世界可读,从命令行工作时以 .mysql_history 结尾等),则密码的理论安全性是没有实际意义的。 Best Answer 700 Software 2011-09-21T04:49:06+08:002011-09-21T04:49:06+08:00 似乎其他人已经在security.stackexchange.com上找到了答案 抱歉,后来我从RubyForum发现了 “该算法只是创建一个 16 字节缓冲区设置为全零,然后遍历您提供的字符串的所有字符,并在两个值之间进行按位或赋值。如果我们迭代直到我们到达 16 字节缓冲区的末尾,我们只是从头开始做 ^=。对于短于 16 个字符的字符串,我们在字符串的末尾停止。
这真的不是一个 mysql 问题,更多的是一个“加密如何工作”的问题。如果你有时间消磨时间,你可能想看这个系列
http://www.youtube.com/watch?v=dlS5_qfxAss&feature=results_main&playnext=1&list=PLDCC9179604F435AB
这是我不久前遇到的密码强度的一个很好的解释
http://www.reddit.com/r/programming/comments/9pu3k/how_long_would_it_take_to_bruteforce_crack_an_aes/c0dv7sx
但请记住,如果密码存储在不安全的源代码中(世界可读,从命令行工作时以 .mysql_history 结尾等),则密码的理论安全性是没有实际意义的。
似乎其他人已经在security.stackexchange.com上找到了答案