我需要为网站创建一个激活系统。用户注册,获得一封电子邮件,然后在查询字符串中点击一个带有密钥的链接,然后我的一个脚本将其解码。为网站创建一个激活链接,生成它的方法是什么?
我的问题不在编程本身,而是什么是生成链接的好方法?哈希是一个想法,但它是一种方式。我应该加密一些东西吗?有谁负责这个相同的事情有任何见解吗?
有没有办法做到这一点,这两个: 不存储在数据库中的所有密码, 不把任何明显的用户信息的查询字符串
用户与主键的表ID和其他信息。它不需要疯狂的安全,但不应该容易破坏。我正在做这个与PHP。我找不到类似的问题,所以如果我忽略了一个,我会很感激链接。
在这里检查http://stackoverflow.com/questions/876139/how-to-generate-a-secure-activation-string-in-php – pregmatch
做你所说的最安全的方法是使用全局唯一标识符(GUID,UUID,无论别名是什么,在PHP中有一个名为'uniqid()'的函数可以做到这一点,另一方面,MySQL有一个名为'UUID()'的函数,我个人使用MySQL的函数创建'UUID()',将它分配给记录,然后用它作为激活标识符发送出去;另一方面,速度方面,使用PHP的'uniqid()'会更有效率,因为它更短并索引它将更有效 –
更新:关于不存储任何东西到数据库 - 这是可能的。你可以以某种方式加密ID,但是你可能会冒险破坏你的加密方法选择AES算法之一和一个好密钥mi足够了。这样你就不会存储额外的数据(激活链接),但你有一个如何安全地发送加密数据的问题。你可以用'base64_encode'来加密ID。另一个想法是有额外的列(或表映射到记录)并使用通过电子邮件发送的全局唯一标识符。 –