Maison  >  Article  >  développement back-end  >  Comment générer un mot de passe à usage unique OTP avec PHP

Comment générer un mot de passe à usage unique OTP avec PHP

藏色散人
藏色散人original
2019-01-18 14:04:475311parcourir

OTP (One Time Password) est désormais obligatoire dans presque tous les services. Les développeurs peuvent générer des OTP de plusieurs manières, mais le défi n’est pas prédictif puisque n’importe qui peut prédire les OTP et tirer parti du service.

Comment générer un mot de passe à usage unique OTP avec PHP

Certains formats OTP populaires sont :

OTP à 4 ou 6 chiffres.

4 ou 6 lettres (minuscules/majuscules) OTP.

OTP alphanumérique à 4 ou 6 chiffres.

Exemple d'OTP à n chiffres :

输入: n = 4
输出: 8723

输入: n = 8
输出: 23914072

Remarque : la sortie du programme variera à chaque fois qu'il est exécuté.

L'une des meilleures façons de générer un OTP est d'utiliser une fonction aléatoire. Mais utiliser directement des fonctions aléatoires peut être dangereux.

Ainsi, l'exemple donné ci-dessous est un moyen de générer un OTP à n chiffres en utilisant une fonction aléatoire et certains algorithmes.

L'exemple de code du programme PHP est le suivant :

<?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)); 
  
?>

Sortie aléatoire :

561862

Cet article concerne la méthode de génération d'OTP (mot de passe à usage unique ) en PHP. J'espère que cela aidera ceux qui en ont besoin !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn