我正在CI3中构建一个登录/注册系统,我有一个疑问。 而不是使用:
$key=md5(uniqid());
用于发送电子邮件激活密钥...我可以使用其他方法吗?我不知道,使用数据库(mysql)?用SHA1哈希可能吗? 我不想要最安全的方式,只是一个非虚假的解决方案,因为uniqid()是。因为我知道uniqid()生成的id不是真正随机的,所以没有理由哈希到md5只是...愚蠢。
提前谢谢。
答案 0 :(得分:2)
实际上,电子邮件验证/密码生成应该是
这意味着如果您发送 md5
,用户会获得字长32 。这是非常糟糕的迹象。
MD5
示例
8b1a9953c4611296a827abf8c47804d7
在codeigniter中有一个帮助电话String
。使用它。
有5种不同的选择可供选择
在控制器中加载助手
$this->load->helper('string');
然后只需添加此
random_string([$type [, $len]]) ;
示例:
random_string('alnum', 8);
假设:在这些情况下长度为8。
<强> 阿尔法 强>
这将只打印字符串与UPPER案例
示例 AKTHDOGK
<强> alnum 强>
这将打印带有UPPER和LOWER Case的字符串
示例 JdKsPeeU
<强> 基本 强>
这将使用php 中的mt_rand()
打印随机数
示例 12756079
<强>数字强>
这将打印数字字符串
示例 01234567
(未使用。所以不确定)
<强> nozero 强>
这将打印和编号。 但没有零
示例 12345678
(未使用。所以不确定)
仅供参考:我从未使用数字和 nozero 。所以我不知道这个例子。但是我使用了所有其他功能。