2011-12-01 133 views
-3

我使用crypt函数在php中加密了用户名和密码。我如何解密该用户名和密码?在PHP中解密密码

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
$key = "This is a very secret key"; 
$text = "Welcome to the system."; 
echo strlen($text) . "\n"; 

这不会打印任何东西。我究竟做错了什么?

+0

您好,欢迎使用计算器。如果您需要帮助,我们需要查看一些代码:)为什么不粘贴您的代码并让我们检查它? – Herr

+3

这个问题似乎对我来说有点不礼貌 - 听起来像你试图在未经他们许可的情况下获得别人的凭证。 – xil3

+1

也可能是完全合法的。我第一次开始在数据库中存储加密密码我不明白如何检查用户是否在登录时输入了正确密码:P。自那时起我学到了很多... – sirmdawg

回答

7

你不能。 crypt() function是一个单向哈希函数。

如果您使用的是执行加密的其他功能(例如mcrypt_encrypt()),请分享。

+0

$ iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB); $ iv = mcrypt_create_iv($ iv_size,MCRYPT_RAND); $ key =“这是一个非常秘密的钥匙”; $ text =“欢迎来到系统。”; echo strlen($ text)。 “\ n”;这不会打印任何内容。我究竟做错了什么? – ads

+0

啊,谢谢。这是属于该问题的有用信息,因此请编辑您的原始问题以添加它。 – Wiseguy

+0

我的代码中有什么错误? – ads

1

你不知道。
您将根据您存储的散列版本验证用户凭证。 http://simple.wikipedia.org/wiki/Cryptographic_hash_function

所以,如果用户注册你散列他们的密码,所以没有人,甚至不知道它是什么。这是一项安全措施。当用户尝试登录到您的网站时,您需要再次将他们的密码crypt()重新登录并验证您的存储中的条目。

+0

我的代码中有什么错误? – ads

5

从PHP文档crypt()

注:没有解密功能,因为的crypt()使用单向算法。

3

crypt()是PHP上的单向加密。你不能解密它。

如果你想使用加密解密功能,检查这个PHP manual