如何在Symfony中生成密码

时间:2015-05-05 16:18:31

标签: security symfony

我现在正在使用symfony2网络应用程序,我需要自动生成由6个字母数字字符组成的代码:

  

14gkf8   kfgh88

这段代码将通过邮件发送到使用,这就是他将如何连接到平台。 任何人都知道如何制作它或者可能有一个现成的工具来做它?谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用以下代码生成随机代码:

substr(bin2hex(openssl_random_pseudo_bytes(100)), 0, 6)

Online demo

openssl_random_pseudo_bytes()将生成随机二进制数据,bin2hex()会将此二进制数据转换为十六进制数据(例如5c3aa…e55),而substr(…, 0, 6)将仅保留6个第一个字符。由于十六进制使用从09af的值,因此每个位置都有16个不同的字符,因此它提供了16^6 = 16,777,216种可能性( 09az它是36^6 = 2,176,782,336,只有±130倍)。如果用户不需要键入密钥,则可以使用更多字符,例如12个字符,您可以使用更多字符:16^12 = 2,814×10¹⁴

答案 1 :(得分:2)

您可以使用/* 0 */ { "result" : [ { "_id" : null, "total_duration" : 34 } ], "ok" : 1 } 生成唯一的字母数字字符串