什么是一次性密码
一次性密码 (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