在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
我希望你现在有了这个主意.
总结以上是内存溢出为你收集整理的php – 如何在sql中生成随机字符串到salt passowrd?全部内容,希望文章能够帮你解决php – 如何在sql中生成随机字符串到salt passowrd?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)