如何解密 php 中的 sha1?

How to decrypt sha1 in php?

下面我使用 sha1 加密了一个字符串变量。现在我希望使用 sha1 函数解密数据,但我要去哪里。请有人站出来指导我正确的方法。

下面是我的代码

<?php
   $variable  = "tiger";
   echo $variable;
   $encrypt = sha1($variable);
   echo $encrypt;
   $decrypt = sha1($encrypt);
   echo $decrypt;
 ?>

我得到这样的输出

tiger
46e3d772a1888eadff26c7ada47fd7502d796e07
989df2c8b5ea37eb7cfde0527d94c01a15257002

SHA-1 是一种单向散列函数。

根据维基百科

A cryptographic hash function is a hash function which is considered practically impossible to invert, that is, to recreate the input data from its hash value alone.

http://en.wikipedia.org/wiki/Cryptographic_hash_function

因此您根本无法解密它。

SHA-1 无法直接解密。这就是背后的想法:无法轻易解密的加密。

解决它的唯一方法是暴力破解:尝试通过对短语进行编码并检查它们是否符合提供的短语来猜测正确的结果。

如果您想使用 SHA-1 进行登录等操作:将输入的密码也用 SHA-1 编码,并检查它是否与保存在 SHA-1 中的密码相同。


SHA1 不容易解密。
唯一的办法就是暴力破解。
它们在网上广泛可用,例如:http://md5-sha.com/md5-encrypt-hash-generator-online
这些网站有一个庞大的已经散列密码的数据库,这可能非常有用。
希望对你有帮助,祝你有个愉快的一天。

SHA1 散列无法解密,但您可以在许多不同的网站上在线尝试,这些网站有密码的 hug 数据库和它的 SHA1 散列。所以你可以试试下面的在线工具:

SHA1 Decoder Online

SHA1 tool

无法解密。

散列只是一种方式 - MD5 和 SHA-1 都是 one-way 散列函数。

您必须在登录表单中创建输入的新散列并检查它是否等于存储的散列。

如果无法解密又想显示值,就用这个方法。

例如,您正在创建密码加密的登录表单,并希望在用户登录后在他们的仪表板中显示密码。

然后创建两列,一列用于 encrypted_password,一列用于 not_encrypted_password,

$not_encrypted_password="password";
$encrypted_password =sha1("password");
$sql = mysqli_query($conn,"INSERT INTO user (not_encrypted_password,encrypted_password)VALUES('$not_encrypted_password','$encrypted_password')");

通过这种方式,您可以在 encrypted_password 列使用登录名,并在仪表板中显示用户使用列 not_encrypted_password.

的密码

简单地说,您可以对密码使用自定义编码解码,如果没有,那么您可以使用 base64_encode() 存储在数据库中,使用 base64_decode() 在配置文件等中使用

简而言之,sha1()可以被解密。但是,只能是相当简单的字符串。包含数字、大小写和特殊字符的密码将被证明是困难的,但可以通过 -

解密 Password12345 之类的密码

https://md5hashing.net/hash/sha1

***更多研究。 sha1() 永远不会改变它对字符的加密方式——例如,“6 年前用 sha1() 加密的 MyPassword 在 2020 年的今天仍然会给出“daa1f31819ed4928fd00e986e6bda6dab6b177dc”的输出。

这些值显然存储在上述网站中,并且随着时间的推移,可识别的密码库会增加。