2012-06-19 83 views
-1

什么加密方案返回一个短字符串?我想要一个小于32个字符的小结果。我也希望能够解密它回到原来的明文。其目的是通过电子邮件发送代码的电子邮件验证。当收到代码时,用户登录到站点并输入代码(或点击链接)。加密为短字符串

编辑:DECRYPTION很重要,因为验证后我需要涉及两个非相关记录

由于

+0

http://stackoverflow.com/a/1289114/233286 – ilhan

+2

加密是不是这个问题的合适工具。 –

回答

0

你在谈论加密,但显然需要散列函数。然后,您可以将哈希与您想要的任何数据模型相关联(无论您希望在这种情况下“加密”)在数据库中。散列用作键值存储的键,并且可以是完全随机的。加密字符串的最终大小始终与原始字符串的大小直接相关。否则,你可能会混淆哈希和加密。

因此,一个简单的用例:

  • 用户注册到网站。
  • 注册控制器在'pending_users'表中创建一个新记录,其中只有2列:user_id和random_key。
  • 和电子邮件当用户执行的verification.php控制器,所述控制器检查被发送至含有被暴露为纽带verification.php的random_key的值的用户?键= $ random_key

在pending_users表中存在$ random_key。如果找到,它将删除记录并更改users表中的标志(例如,active_account = true)。如果未找到,则将错误发回给用户。

希望这有助于 干杯

1

验证系统一样,使用随机产生的字符串(它们被存储在当创建帐户数据库) ,而不是加密的数据。

0

你需要解密回来!您可以生成非重复的随机字符串并将该代码分配给该用户。然后搜索代码并从数据库中获取用户。您可以添加额外的功能来存储它的创建时间和24小时

0

到期,如果你不需要安全,单向散列函数就足够了。 CRC32是一个不错的选择。您可以发送消息,然后等待用户输入相同的响应。

0

你问什么是不可能的。编写像pkzip和rar这样的程序的公司愿意为此而牺牲的是圣杯。想象一下任何文件(少量的数据)都可以压缩成只有32个字节。 ;)

无论如何,你正在尝试做的事情之前已经完成了。通过在数据库中存储带有电子邮件的uuid。该quid将邮寄给用户,他们可以在您的表单中输入。然后它只是对数据库的简单查询来查找相应的记录。