我有一个pssword变量,其中包含用户密码,该密码在密码的开头和结尾包含一些混乱,以便密码密码。以下是此代码:
$teacherpassword = md5(md5("j92".$teacherpassword."djS"));
显然,选择加密密码的字符对于所有密码都是相同的字符。
我想要的是创建一个随机字符生成器,使盐的前3个字符和最后3个字符都是随机的,这样每个密码都会有一个随机的盐。
下面是php生成器创建为盐随机挑选字符:
$salt = "";
for ($i = 0; $i < 40; $i++) {
$salt .= substr(
"./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
mt_rand(0, 63),
1);
}
我的问题是如何让生成器为盐挑出6个随机字符,然后在密码的前面粘贴其中3个字符,在密码末尾粘贴其他3个字符?
例如:
密码1可以是:$ teacherpassword = md5(md5(“jfs”。$ teacherpassword。“sfS”));
密码2可以是:$ teacherpassword = md5(md5(“4f3”。$ teacherpassword.p.S“));
密码3可以是:$ teacherpassword = md5(md5(“wpw”。$ teacherpassword。“qq2”));
正如您所看到的,所有密码都包含自己的盐,这要归功于盐的php随机生成器
答案 0 :(得分:0)
一个非常简单的解决方案是使用substr()
substr - 返回字符串的一部分
$randomSalt = "abcdef";
$preSalt = substr($randomSalt, 0,3); // abc
$postSalt = substr($randomSalt, 3,3); // def
$password = md5(md5($preSalt.$teacherpassword.$postSalt));
还有一个建议是使用PHP的uniqueid()
函数为您的密码生成随机盐。
uniqid - 生成唯一ID