ホームページ >バックエンド開発 >PHPチュートリアル >PHPでOTPワンタイムパスワードを生成する方法

PHPでOTPワンタイムパスワードを生成する方法

藏色散人
藏色散人オリジナル
2019-01-18 14:04:475356ブラウズ

現在、ほぼすべてのサービスで OTP (ワンタイムパスワード) が必須となっています。開発者はさまざまな方法で OTP を生成できますが、誰でも OTP を予測してサービスを活用できるため、この課題は予測的ではありません。

PHPでOTPワンタイムパスワードを生成する方法

一般的な OTP 形式には、

4 桁または 6 桁の OTP があります。

4 または 6 文字 (小文字/大文字) OTP。

4 桁または 6 桁の英数字 OTP。

n 桁の OTP の例:

输入: n = 4
输出: 8723

输入: n = 8
输出: 23914072

注: プログラムの出力は、実行するたびに変化します。

OTP を生成する最良の方法の 1 つは、ランダム関数を使用することです。ただし、ランダム関数を直接使用するのは危険です。

したがって、以下に示す例は、ランダム関数といくつかのアルゴリズムを使用して n 桁の OTP を生成する方法です。

PHP プログラム コードの例は次のとおりです:

<?php 
  
//创建生成OTP的函数 
function generateNumericOTP($n) { 
      
    // 以生成器字符串为例,它由以下内容组成
    //全部是数字
    $generator = "1357902468"; 
  
    //迭代n次,选择一个字符
    //从生成器并将其附加到$result中
    //登录从生成器生成随机字符
    // 生成一个随机数
    // 取与发电机长度相同的模量(如i)
    // 将字符从生成器追加到结果的(i)位置  
    $result = ""; 
  
    for ($i = 1; $i <= $n; $i++) { 
        $result .= substr($generator, (rand()%(strlen($generator))), 1); 
    } 
  
    // 返回结果
    return $result; 
} 

$n = 6; 
print_r(generateNumericOTP($n)); 
  
?>

ランダム出力:

561862

この記事は、PHP で OTP (ワンタイム パスワード) を生成する方法について説明します。必要としている人たちの助けになれば幸いです。友達が助けてくれます!

以上がPHPでOTPワンタイムパスワードを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。