微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何在sql中生成随机字符串到salt passowrd?

sql中有关于密码的问题:

下面的代码通过随机生成10个字符的字符串来限制特定密码:

Update Teacher 
SET    TeacherSalt = SUBSTRING(MD5(RAND()),-10),TeacherPassword = SHA1(CONCAT('009b9b624aaecc4b3217dcd4bfee15ab704745d7',SUBSTRING(MD5(RAND()),-10)))
WHERE TeacherPassword = '009b9b624aaecc4b3217dcd4bfee15ab704745d7'

但我的问题是我想要更改盐,以便它生成的字符串来自所有这些字符:

./ABCDEFGHIJKLMnopQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

有63个字符. PHP的方式如下:

$salt = ""; 
for ($i = 0; $i < 40; $i++) { 
   $salt .= substr(
     "./ABCDEFGHIJKLMnopQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",mt_rand(0,63),1); 
}

但是我怎么能用上面的sql方式写这个呢?

最佳答案
如果你真的想要随意加盐,那么只能通过用PHP生成随机盐并用该盐加密密码并将盐密钥和密码存储在表的两个字段中来实现.表必须具有salt字段和密码字段.但是,如果您只是想使用MysqL进行加密而不是在这里查看http://dev.mysql.com/doc/refman/5.5/en//encryption-functions.html

当我们验证用户登录凭据时,我们遵循相同的过程,只是这次我们使用数据库中的salt而不是生成新的随机数据.我们向其添加用户提供的密码,运行我们的散列算法,然后将结果与存储在该用户配置文件中的散列进行比较.

以下链接可能会为您提供更多想法.

How do you securely store a user’s password and salt in MySQL?

Where do you store your salt strings?

How insecure is a salted SHA1 compared to a salted SHA512

Salt Generation and open source software

我希望你现在有了这个主意.

原文地址:https://www.jb51.cc/mysql/433093.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐