加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP:生成唯一用户密钥的选项

发布时间:2020-12-13 22:43:00 所属栏目:PHP教程 来源:网络整理
导读:经过几天研究哈希,生成随机数或唯一密钥,我现在有点困惑. 我还有一件事我想要正确使用哪个是用户密钥.我想为在我的网站上注册的每个会员/用户存储一个唯一的密钥.所以这个密钥必须是唯一的,不能重复.我正在考虑使用用户电子邮件并将其与时间或其他东西一起散
经过几天研究哈希,生成随机数或唯一密钥,我现在有点困惑.

我还有一件事我想要正确使用哪个是用户密钥.我想为在我的网站上注册的每个会员/用户存储一个唯一的密钥.所以这个密钥必须是唯一的,不能重复.我正在考虑使用用户电子邮件并将其与时间或其他东西一起散列…

然后我想知道哪个是创建这样一个密钥的最佳方式 –

我能用hash_hmac()为我做这个吗?

我有几件事情不明白hash_hmac() – 就像在这个例子中来自php.net hash_hmac(‘ripemd160′,’快速棕色狐狸跳过懒狗.’,’秘密’);

那么什么是“秘密” – 我可以把任何不同的东西改成,比如时间吗?
我认为我可以取代’快速的棕色狐狸跳过懒狗.’用电子邮件地址?

或者我可以使用Portable PHP password hashing framework来做到这一点?

唯一的事情是它产生.,$和/我需要删除它们,否则当我从URL请求密钥时我会收到错误.

所以我可能会这样做 –

$hash = $phpass -> HashPassword('me@example.com'.$timedate)
$key = preg_replace("/[^a-zA-Z0-9]+/","",$hash);

如果您有任何更好的建议,请告诉我.

I have one last thing that I want to
get it right which is the user key. I
want to store an unique key for each
member/ user who registers at my
website. So this key must be unique
and not duplicate. I am thinking to
use the user email and hash it with
timedate or something

>我会让你的数据库使用autoincrement为你处理这个问题
>您也可以使用uniqid:md5(uniqid(rand(),TRUE));

index.php文件:

for ($i=0;$i<10;$i++) {
    echo md5(uniqid(rand(),TRUE)) . "n";
}

输出:

php index.php 
ba0d9aad1ff0ceadf4b25f101099b91e
b5a6db5e174b426061d3d3835a6fcaea
54be6d3a03e0590917ed20b097442e3a
6e208a61eae8cfd102d4a41decf0f64e
2cafac5402815af87e8299e5e67016bd
95e839097a566471c70fe357e5a101d2
c6908532bda6f926debdda754b02f931
aac7adf999dd4dd009f208b176ea90d0
1ed7779229e57b05adc088b375582cfb
e016a684564d5cdb89201ebab1038609

它们都是独一无二的,你可以使用它们.你不应该做任何其他事情?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读