[英]How to include random salt with password variable in php
我有一個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個字符粘貼在passowrd的前面,並將其他3個字符粘貼在密碼的末尾?
例如:
密碼1可以是:$ teacherpassword = md5(md5(“ jfs”。$ teacherpassword。“ sfS”)));
密碼2可以是:$ teacherpassword = md5(md5(“ 4f3”。$ teacherpassword.pS“)));
密碼3可以是:$ teacherpassword = md5(md5(“ wpw”。$ teacherpassword。“ qq2”));
如您所見,所有的密碼都包含自己的鹽,這要歸功於php隨機生成的鹽
一個非常簡單的解決方案是使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.