密码加密方法?:PASSWORD()与md5?

Sco*_*150 3 php mysql password-encryption

只是想知道密码加密的方法是否有利有弊...通常,我会使用php并使用md5加密密码,然后再将新用户插入数据库.我最近继承了一个项目,他们在sql插入查询中使用PASSWORD()来加密它.那么,现在我想知道使用一个优于另一个是否有优势?

Jon*_*ier 9

请参阅MySQL文档PASSWORD:

PASSWORD()函数由MySQL服务器中的身份验证系统使用; 你不应该在自己的应用程序中使用它.为此,请考虑使用MD5()或SHA2().有关在应用程序中安全地处理密码和身份验证的详细信息,另请参阅RFC 2195第2节(质询 - 响应身份验证机制(CRAM)).

在该注释下面是不依赖该功能的一个很好的理由:

调用PASSWORD()的语句可以记录在服务器日志或历史文件中,例如〜/ .mysql_history,这意味着任何对该信息具有读访问权限的人都可以读取明文密码.

密码通常最好与盐渍哈希(SHA等)一起存储.这是一个答案,其中列出了一些有关安全密码存储的有用链接.