我正在CI3中构建一个登录/注册系统,我有一个疑问。代替使用:
$key=md5(uniqid());
用于发送电子邮件激活密钥...我可以使用其他方法吗?我不知道,使用数据库(mysql)?也许是带有 SHA1 的哈希值?我不想要最安全的方式,只需要一个不像uniqid()那样虚假的解决方案。'因为我知道 uniqid() 生成的 id 并不是真正的随机,所以没有理由简单地散列到 md5 是......笨。
提前谢谢你。
实际上电子邮件验证/密码生成应该是
- 易于理解
- 容易回来
这意味着如果您发送md5
发生的事情是用户获得的字长为 32。这是非常糟糕的迹象。
MD5
示例
8b1a9953c4611296a827abf8c47804d7
我建议你是
在代码点火器中有一个帮助程序调用String
。使用它。
有5种不同的选择供您选择
- 阿尔法
- 阿尔纳姆
- 基本
- 数值的
- 零
如何使用这个?
控制器中的加载帮助程序
$this->load->helper('string');
然后只需添加这个
random_string([$type [, $len]]) ;
例:
random_string('alnum', 8);
这些如何相互区别??
假设 : 在这些场景中,长度为 8。
阿尔法
这将只打印大写
字符串例 AKTHDOGK
阿尔纳姆
这将打印大写和小写
的字符串例 JdKsPeeU
基本
这将在 php 中使用 mt_rand()
打印随机数。
例 12756079
数值的
这将打印数字字符串。
例 01234567
(未使用。所以不确定)
零
这将打印和编号。但没有零例 12345678
(未使用。所以不确定)
仅供参考:我从未使用过数字和零。所以我对这个例子一无所知。但是我使用了所有其他功能。