我还有一件事我想要正确使用哪个是用户密钥.我想为在我的网站上注册的每个会员/用户存储一个唯一的密钥.所以这个密钥必须是唯一的,不能重复.我正在考虑使用用户电子邮件并将其与时间或其他东西一起散列…
然后我想知道哪个是创建这样一个密钥的最佳方式 –
我能用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));
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
它们都是独一无二的,你可以使用它们.你不应该做任何其他事情?