什么是一次性密码
一次性密码 (OTP) 是一种密码。
它只能对任何数字设备上的一个登录会话或者交易有效。
OTP 有助于避免与基于密码的静态身份验证相关的缺点。
此类密码最重要的好处之一是,与静态密码相反,它们可以免受重放攻击。
OTP 的缺点是人类很难记住它们。
在现代世界中,几乎每项服务都需要一次性密码 (OTP)。
开发人员可以很容易地生成 OTP。
但是,存在一个基本挑战:不要创建预测密码来避免服务被利用。
其中我们将展示如何生成合适的 OTP。
生成 N 位数字 OTP
生成 OTP 最常用的方法之一是使用随机函数。
然而,这个选项还不够值得信赖。
这就是为什么,我们将演示另一种使用随机函数以及创建 n 位数字 OTP 的算法的方法。
让我们来看看:
<?php
//生成一次性密码的函数
function generateNumericOTP($n)
{
//包含所有数字的字符串
//
$generator = "1359702468";
//迭代 n 次并从生成器中选择一个字符并将其附加到 $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 = ; $i <= $n; $i++) {
$result .= substr($generator, (rand() % (strlen($generator))), );
}
//Returning the result
return $result;
}
//Main program
$n = ;
print_r(generateNumericOTP($n));
?>
此示例的输出将是:
561862
日期:2020-06-02 22:15:49 来源:oir作者:oir
