在 CodeIgniter 3 中生成用于电子邮件验证的令牌

Generate a token for email verification in CodeIgniter 3

我正在 CI3 中构建一个 login/reg 系统,但我有疑问。 而不是使用:

$key=md5(uniqid());

用于发送电子邮件激活密钥...我可以使用其他方法吗?我不知道,使用数据库 (mysql)?也许用 SHA1 散列? 我不想要最安全的方法,只是一个不像 uniqid() 那样伪造的解决方案。因为我知道 uniqid() 生成的 id 并不是真正随机的,所以没有理由散列到 md5 只是...愚蠢。

提前致谢。

实际上电子邮件verification/password代应该是

  1. 通俗易懂
  2. 轻松取回

这意味着如果您发送 md5 用户会得到一个 32 的字长。这是非常糟糕的迹象。

MD5 例子

8b1a9953c4611296a827abf8c47804d7

我给你的建议是

在 codeigniter 中有一个助手调用 String。用那个。

有5种不同的选择可以选择你

  1. alpha
  2. 基本
  3. 数字
  4. 零零

这个怎么用?

在控制器中加载助手

$this->load->helper('string');

然后只需添加这个

random_string([$type [, $len]]) ;

示例:

random_string('alnum', 8);

它们之间有何不同??

Assume : length is 8 in these scenario.

alpha

这将只打印 大写字符串
示例 AKTHDOGK

alnum

这将打印 带有大写和小写的字符串
示例 JdKsPeeU

基本

这将在 php.
中使用 mt_rand() 打印 随机数 示例 12756079

数字

这将打印数字字符串
示例 01234567(未使用。所以不确定)

nozero

这将打印和编号。 但是没有零 示例 12345678(未使用。所以不确定)


FYI: I never used numeric and nozero. So i have no idea about the example. But all other function are i used.