在 PHP 中生成一次性密码
原文:https://www . geesforgeks . org/generating-OTP-一次性-php 中的密码/
现在,OTP(一次性密码)几乎在每一项服务中都是强制性的。开发人员可以通过多种方式生成动态口令,但挑战不在于预测性,因为任何人都可以预测动态口令并利用服务。
OTP 的一些流行格式是:
- Or a 4-digit OTP.
- Or 4-letter (lowercase/uppercase) OTP.
- 4-or 6-digit alphanumeric OTP.
n 位数字 OTP 示例:
Input : n = 4
Output : 8723
Input : n = 8
Output : 23914072
注意:每次执行程序的输出都会不一样。
生成动态口令的最好方法之一是使用随机函数。但是直接使用随机函数会很危险。这里有一个方法,使用随机函数和一些算法来生成 n 位数字的动态口令。
程序:
<?php
// Function to generate OTP
function generateNumericOTP($n) {
// Take a generator string which consist of
// all numeric digits
$generator = "1357902468";
// Iterate for n-times and pick a single character
// from generator and append it to $result
// Login for generating a random character from generator
// ---generate a random number
// ---take modulus of same with length of generator (say i)
// ---append the character at place (i) from generator to result
$result = "";
for ($i = 1; $i <= $n; $i++) {
$result .= substr($generator, (rand()%(strlen($generator))), 1);
}
// Return result
return $result;
}
// Main program
$n = 6;
print_r(generateNumericOTP($n));
?>
输出:
561862
版权属于:月萌API www.moonapi.com,转载请注明出处