在 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代应该是
- 通俗易懂
- 轻松取回
这意味着如果您发送 md5
用户会得到一个 32 的字长。这是非常糟糕的迹象。
MD5
例子
8b1a9953c4611296a827abf8c47804d7
我给你的建议是
在 codeigniter 中有一个助手调用 String
。用那个。
有5种不同的选择可以选择你
- alpha
- 数
- 基本
- 数字
- 零零
这个怎么用?
在控制器中加载助手
$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.
我正在 CI3 中构建一个 login/reg 系统,但我有疑问。 而不是使用:
$key=md5(uniqid());
用于发送电子邮件激活密钥...我可以使用其他方法吗?我不知道,使用数据库 (mysql)?也许用 SHA1 散列? 我不想要最安全的方法,只是一个不像 uniqid() 那样伪造的解决方案。因为我知道 uniqid() 生成的 id 并不是真正随机的,所以没有理由散列到 md5 只是...愚蠢。
提前致谢。
实际上电子邮件verification/password代应该是
- 通俗易懂
- 轻松取回
这意味着如果您发送 md5
用户会得到一个 32 的字长。这是非常糟糕的迹象。
MD5
例子
8b1a9953c4611296a827abf8c47804d7
我给你的建议是
在 codeigniter 中有一个助手调用 String
。用那个。
有5种不同的选择可以选择你
- alpha
- 数
- 基本
- 数字
- 零零
这个怎么用?
在控制器中加载助手
$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.