java - 如何在Java中比较sha1加密的密码?

标签 java encryption sha1

假设我已经像这样加密了 SHA1 密码

String pass = "f6ce584e7b4ff5253eed4a2ea2b44247";

我想要这样的条件:

 if (pass.equals("userinput")){
        System.out.println("success");
    }

请有人帮助我制定适当的条件/函数来比较用户输入和加密密码之间的值。我们将非常感谢您的帮助。谢谢

最佳答案

SHA1 是一种哈希算法,这意味着它是单向的。散列后您无法获得原始消息。与双向加密不同(允许加密和解密)。

这意味着如果您想比较哈希值,您不会尝试获取原始消息。相反,您也对要比较的消息进行哈希处理,然后执行匹配:

因此,如果散列密码存储为:

String pass = "f6ce584e7b4ff5253eed4a2ea2b44247";

为了匹配随后输入的密码,您需要:

//check if hashed userInput is also "f6ce584e7b4ff5253eed4a2ea2b44247"
if(pass.equals(sha1(userInput))){          
    //do whatever
}

要实现sha1()哈希函数,请参阅:Java String to SHA1

关于java - 如何在Java中比较sha1加密的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41162523/

相关文章:

java - 更改 ContentPane 的背景颜色

java - 带有 PKCS#5 填充的 AES

iphone - 未启用用户密码锁时,如何使用 iOS 磁盘加密保护数据?

java - 如何使用 split 或其他函数从具有 xml 标签的文本文件中提取信息

java - 简单的 Java/Swing GUI 游戏

java - 查找从固定位置到两个 GPS 位置连接线的最近位置

mysql - 是否可以加密 mysql 数据库中表的列

android - 使用私钥、RSA-SHA1 签名和 Android 中的 md5 签名字符串

java - Sha1WithRSA 和 Sha1WithRSAEncryption 之间的区别?

Android Studio 更改 SHA1