在PHP中解密密码[关闭]

Posted

技术标签:

【中文标题】在PHP中解密密码[关闭]【英文标题】:Decrypting password in PHP [closed] 【发布时间】:2012-01-10 21:33:31 【问题描述】:

我使用crypt 函数在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";

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

【问题讨论】:

您好,欢迎来到 ***。如果您需要帮助,我们需要查看一些代码 :) 为什么不粘贴您的代码让我们检查一下? 这个问题对我来说似乎有点狡猾 - 听起来你想在未经他人许可的情况下获取其他人的凭据。 也可以是完全合法的。我第一次开始在数据库中存储加密密码时,我不明白如何检查用户在登录时输入的密码是否正确:P。从那以后我学到了很多... xil3 它一定不是恶意的。为什么不等着看会发生什么 仅供参考-我正在用 PHP 构建身份验证系统。我不想获取任何人的登录凭据。我正在使用许多函数,如 base_64、md5、crypt 等。只是想知道哪个最安全,我发现 crypt 最有用但无法解密。 【参考方案1】:

crypt() 是 PHP 上的一种单向加密。你不能解密回来。

如果你想使用加解密功能,请查看PHP manual

【讨论】:

【参考方案2】:

来自crypt() 的 PHP 文档:

注意:没有解密函数,因为 crypt() 使用单向算法。

【讨论】:

【参考方案3】:

你不能。 crypt() function 是一种单向散列函数。

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

【讨论】:

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $key = "这是一个非常秘密的密钥"; $text = "欢迎来到系统。";回声 strlen($text) 。 "\n";这不打印任何东西。我做错了什么? 啊,谢谢。这是属于该问题的有用信息,因此请编辑您的原始问题以添加它。 我的代码有什么错误? @ads 查看我对上述问题的评论。 我没有在数据库中存储加密密码。我必须将加密的用户名从主身份验证系统传递到子门户并允许用户访问该门户。所以我计划在子门户中解密用户名。我无法使用 mcrypt_encrypt,因为我发布的代码不起作用。【参考方案4】:

你没有。 您将根据您存储的哈希版本验证用户凭据。 http://simple.wikipedia.org/wiki/Cryptographic_hash_function

因此,如果用户注册,您会对他们的密码进行哈希处理,这样没有人,甚至您都不知道密码是什么。这是一项安全措施。当用户尝试登录您的站点时,您再次调用他们的密码调用 crypt() 并验证您存储中的条目。

【讨论】:

我的代码有什么错误?

以上是关于在PHP中解密密码[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

php 加密 解密 密码传输

使用 MCRYPT 在 PHP 中加密/解密...结果不一致

如何加密解密php源代码

与 PHP 一起使用的最佳密码加密和解密技术 [重复]

存储可解密密码的安全方法

JavaScript 加密和 PHP 解密