Java 什么是等价的解密代码
请让我知道解密的等效代码。我已经用这个编码方法加密了我的密码,现在我想解密Java 什么是等价的解密代码,java,security,encryption,passwords,decode,Java,Security,Encryption,Passwords,Decode,请让我知道解密的等效代码。我已经用这个编码方法加密了我的密码,现在我想解密 MessageDigest digest = MessageDigest.getInstance("MD5"); digest.update(password.getBytes()); BASE64Encoder encoder = new BASE64Encoder(); byte hashedBytes[] = (new String(digest.digest(), "UTF-8")).getBytes(); Sy
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(password.getBytes());
BASE64Encoder encoder = new BASE64Encoder();
byte hashedBytes[] = (new String(digest.digest(), "UTF-8")).getBytes();
System.out.println(encoder.encode(hashedBytes))
简单的回答是你不能。MD5是一个散列,这意味着理论上用它“加密”的数据不能转换回原始数据。这是一个单向函数,(理论上)不能反转。请继续阅读以了解更多信息 就像你有一台机器,通过返回书中的页数来处理书一样。你可以给它一本书,你会得到一个值回来,但只有从机器的输出,它是不可能告诉什么是喂进来的
更多详情: 从Wikipedia页面获取加密哈希函数: 加密散列函数是一种散列函数,它接受任意数据块并返回固定大小的位字符串,即加密散列值,因此对数据的任何(意外或有意)更改都将(以非常高的概率)更改散列值 理想的加密哈希函数有四个主要属性:
- 计算任何给定消息的哈希值都很容易
- 生成具有给定哈希的消息是不可行的
- 在不更改哈希的情况下修改消息是不可行的
- 用相同的哈希值查找两个不同的消息是不可行的