Mysql phpmyadmin-md5()和密码()之间的差异

Mysql phpmyadmin-md5()和密码()之间的差异,mysql,encryption,phpmyadmin,passwords,md5,Mysql,Encryption,Phpmyadmin,Passwords,Md5,我想创建一个登录应用程序使用PHP和phpmyadmin数据库,并希望密码被加密,所以 除了md5()和password()之外,还有其他类型可以加密文本吗 md5()和password()之间有什么区别 md5()和password()之间的哪一个更好 谢谢,希望能对其他人有所裨益 *编辑 我更喜欢这种单向散列方法:)是的,还有其他类型 我建议您使用BCRYPT。它允许您以单向密码加密密码。您将无法恢复密码,有一个函数可以让您知道给定密码是否与加密密码相同 干杯您可以在中找到的所有答案。在提问

我想创建一个登录应用程序使用PHP和phpmyadmin数据库,并希望密码被加密,所以

  • 除了md5()和password()之外,还有其他类型可以加密文本吗

  • md5()和password()之间有什么区别

  • md5()和password()之间的哪一个更好

  • 谢谢,希望能对其他人有所裨益

    *编辑
    我更喜欢这种单向散列方法:)

    是的,还有其他类型

    我建议您使用BCRYPT。它允许您以单向密码加密密码。您将无法恢复密码,有一个函数可以让您知道给定密码是否与加密密码相同


    干杯

    您可以在中找到的所有答案。在提问之前,请始终从这一点开始

  • 是的,请参见链接文档中的列表,并提供详细说明
  • md5()使用md5,password()使用MySQL的本机哈希,如文档中所示
  • 这取决于你需要它做什么。这个问题太模糊了,但文档给出了一个提示:

    MySQL中的身份验证系统使用PASSWORD()函数 服务器;您不应该在自己的应用程序中使用它。为此 目的,考虑Md5()或Sa2()而不是.<
  • MySQL服务器中的认证系统使用PASSWORD()函数;您不应该在自己的应用程序中使用它。为此,请考虑Md5()或Sa2-()。另请参阅RFC 2195第2节(质询-响应身份验证机制(CRAM)),了解有关在应用程序中安全处理密码和身份验证的更多信息


    不幸的是,仅使用SQL命令无法安全存储密码

    为了防止rainbowtable攻击,您应该向散列方案中添加随机salt,但这意味着您无法仅用SQL验证密码。您必须读取user表中每一行的salt,并计算哈希值以进行比较

    安全散列函数可以调整为需要一定的时间(例如10ms),例如BCrypt有一个成本因素。如果您必须检查每一行,并且每次计算都需要一些时间,那么如果用户表增长,您将遇到问题


    这就是为什么不应该由数据库本身对密码进行哈希处理,而应该使用开发语言进行哈希处理的原因。首先,您必须根据给定的用户名查找哈希及其salt,然后您可以验证这一行的密码。对于PHP,请看一下函数。

    我知道的不多,但据我所知,md5是一种单向散列技术。还有其他加密,如Rijndael/AES。你可以试试看这个页面:“PASSWORD()函数由MySQL服务器中的身份验证系统使用;你不应该在你自己的应用程序中使用它。”(就像MD5一样,PASSWORD也是一个单向函数,确实如此。)如果你真的想重新发明轮子并创建你自己的密码/身份验证系统(不要),然后阅读以避免一些最严重的错误——比如使用MD5或SHA!我强烈建议使用一个现有的经过审查的框架。在mysql中没有bcrypt,afaik。我明白你说的,但你能详细说明一下吗?所以-1是必要的?“mysql中没有bcrypt”-->“我想用phpmyadmin数据库创建一个登录应用程序”他会用PHP,不是吗?不要担心否决票,没什么私事。我们不知道他是否使用PHP(我想他是)。不过我们知道他是个初学者,所以你的回答很可能会引起混乱。如果你这么说的话。但我不这么认为。我只是告诉他,他可以使用BCRYPT,这是一个很好的库来加密密码…是的,我使用PHP创建我的登录应用程序,我很抱歉问这样的问题,呵呵。我只是不知道,请至少发一个链接到你抄袭答案的地方。好吧,那我很抱歉,这是我的错。谢谢你的邀请explanation@user3573370只是别忘了接受这里的一个答案。使用答案左边的勾号。哦,好吧,那怎么看谁给了我-1?@user3573370投票是匿名的。问题上的向下投票按钮显示
    此问题不显示任何研究成果;它不清楚或没有用处
    。因此,如果你的问题被否决,原因就是其中之一(我会怀疑你的第一个问题)。哦,我看不出对其他人没有用处的悲伤。顺便说一句,谢谢你帮助我