我使用sha-512 Algo及其盐加密数据,我想要解密 那些数据请大家告诉我如何使用Java解码它。
由于
答案 0 :(得分:28)
SHA-512是cryptographic hash function。加密哈希函数单向 - 您可以计算数据块的哈希值,但是当您只有哈希值时,无法获取原始数据。因此,您无法解密哈希代码以获取原始数据。
加密哈希函数通常用于在数据库中存储密码。要检查用户输入的密码是否正确,您可能会想到的第一件事是“好的,所以我必须在数据库中解密密码并检查它是否与用户输入的内容相同”。但是,这不是你怎么做的。
相反,您所做的是对用户输入的密码进行哈希处理,并将该哈希值与存储在数据库中的哈希值进行比较。如果哈希值相同,则用户输入正确的密码。您不需要“解密”哈希值。
答案 1 :(得分:4)
SHa 512不是加密。散列设计为仅限单向的算法,以验证数据的完整性。
简而言之:不,你不能“解密”任何哈希算法。
答案 2 :(得分:3)
您可以使用MessageDigest类让Java计算哈希值。
String plainText = "text" + "salt";
MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
byte[] hash = messageDigest.digest( plainText.getBytes() );
System.out.println("Result: " + new String(hash));
如果您知道可能的plainText值,则可以找到匹配的哈希值。但是,如果您对原始数据一无所知,那么强制执行此操作将基本上直到世界末日。
答案 3 :(得分:0)
如何实施替代MD5的SHA512
此处是MD5代码
int row = tabelangajati.convertRowIndexToModel(tabelangajati.getSelectedRow());