Mysql phpmyadmin-md5()和密码()之间的差异
我想创建一个登录应用程序使用PHP和phpmyadmin数据库,并希望密码被加密,所以Mysql phpmyadmin-md5()和密码()之间的差异,mysql,encryption,phpmyadmin,passwords,md5,Mysql,Encryption,Phpmyadmin,Passwords,Md5,我想创建一个登录应用程序使用PHP和phpmyadmin数据库,并希望密码被加密,所以 除了md5()和password()之外,还有其他类型可以加密文本吗 md5()和password()之间有什么区别 md5()和password()之间的哪一个更好 谢谢,希望能对其他人有所裨益 *编辑 我更喜欢这种单向散列方法:)是的,还有其他类型 我建议您使用BCRYPT。它允许您以单向密码加密密码。您将无法恢复密码,有一个函数可以让您知道给定密码是否与加密密码相同 干杯您可以在中找到的所有答案。在提问
我更喜欢这种单向散列方法:)是的,还有其他类型 我建议您使用BCRYPT。它允许您以单向密码加密密码。您将无法恢复密码,有一个函数可以让您知道给定密码是否与加密密码相同
干杯您可以在中找到的所有答案。在提问之前,请始终从这一点开始
不幸的是,仅使用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投票是匿名的。问题上的向下投票按钮显示
此问题不显示任何研究成果;它不清楚或没有用处
。因此,如果你的问题被否决,原因就是其中之一(我会怀疑你的第一个问题)。哦,我看不出对其他人没有用处的悲伤。顺便说一句,谢谢你帮助我