如何根据月份名称生成随机密码?
How do i generate random password based on the month names?
我想根据每月的名字生成一个随机密码,函数应该从A to Z
中选择alphabet
并放在生成的随机密码的第5位?
问题
我有点困惑,如何在 January
的基础上选择 $alphabet
的第一个字母并放置到生成的随机密码的第 5 个位置?
例如如果当前月份是一月
如果当前月份是一月,那么函数应该从 A
$alphabet
并放置到随机密码的第5位
生成?
例如如果当前月份是二月
如果当前月份是二月,那么函数应该从 B
$alphabet
并放置到随机密码的第5位
生成
PHP 代码
function randomPassword() {
$currentmonth = date('F');
if($currentmonth == 'January'){
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ";
$random = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array();
$alphaLength = strlen($random) - 1;
for ($i = 0; $i < 5; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $random[$n];
}
return implode($pass);
}
}
echo randomPassword();
要做到这一点,您需要做的就是跟踪月份并使用它来获取 $alphabet
字符串的第 n 个字符。然后,您可以在 implode()
最终密码之前用它替换 $pass
数组的第五个元素。
function randomPassword() {
$currentmonth = date('n');
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ";
$random = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array();
$alphaLength = strlen($random) - 1;
for ($i = 0; $i < 5; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $random[$n];
}
$pass[4] = substr($alphabet, $currentmonth - 1, 1);
return implode($pass);
}
echo randomPassword();
下面是生成随机密码的更简洁的方法:
function randomPassword() {
$currentmonth = date('n') - 1;
$alphabet = "abcdefghijklm";
$random_hash = substr(md5(uniqid(rand(), true)), 28, 4);
return $random_hash . substr($alphabet, $currentmonth, 1);
}
echo randomPassword();
请记住,这些密码很短且是伪随机的,不是很安全。
我想根据每月的名字生成一个随机密码,函数应该从A to Z
中选择alphabet
并放在生成的随机密码的第5位?
问题
我有点困惑,如何在 January
的基础上选择 $alphabet
的第一个字母并放置到生成的随机密码的第 5 个位置?
例如如果当前月份是一月
如果当前月份是一月,那么函数应该从 A
$alphabet
并放置到随机密码的第5位
生成?
例如如果当前月份是二月
如果当前月份是二月,那么函数应该从 B
$alphabet
并放置到随机密码的第5位
生成
PHP 代码
function randomPassword() {
$currentmonth = date('F');
if($currentmonth == 'January'){
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ";
$random = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array();
$alphaLength = strlen($random) - 1;
for ($i = 0; $i < 5; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $random[$n];
}
return implode($pass);
}
}
echo randomPassword();
要做到这一点,您需要做的就是跟踪月份并使用它来获取 $alphabet
字符串的第 n 个字符。然后,您可以在 implode()
最终密码之前用它替换 $pass
数组的第五个元素。
function randomPassword() {
$currentmonth = date('n');
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ";
$random = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array();
$alphaLength = strlen($random) - 1;
for ($i = 0; $i < 5; $i++) {
$n = rand(0, $alphaLength);
$pass[] = $random[$n];
}
$pass[4] = substr($alphabet, $currentmonth - 1, 1);
return implode($pass);
}
echo randomPassword();
下面是生成随机密码的更简洁的方法:
function randomPassword() {
$currentmonth = date('n') - 1;
$alphabet = "abcdefghijklm";
$random_hash = substr(md5(uniqid(rand(), true)), 28, 4);
return $random_hash . substr($alphabet, $currentmonth, 1);
}
echo randomPassword();
请记住,这些密码很短且是伪随机的,不是很安全。