假设我已经像这样加密了 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/