[当我将Java字符串转换为md5哈希时,如何解密? [重复]

问题描述 投票:0回答:2

我正在使用MessageDigest类研究Java中的md5哈希,可以说我做到了

public void givenPassword_whenHashingUsingCommons_thenVerifying()  {
    String hash = "35454B055CC325EA1AF2126E27707052";
    String password = "ILoveJava";

    String md5Hex = DigestUtils
      .md5Hex(password).toUpperCase();

    assertThat(md5Hex.equals(hash)).isTrue();
}

所以我确实将我的密码字符串转换为md5哈希,可以说我的接收者现在不希望该字符串作为哈希,而是作为普通字符串(哈希仅用于传输),我如何将md5哈希字符串转换回一个“普通”文本字符串?

java hash md5
2个回答
0
投票

无法将哈希(MD5或SHA1或SHA2 ....)转换为原始字符串。

hashing function的目的是单向翻译。没有回来。

MD5哈希函数是一种过时的加密函数,它会生成输入数据的固定长度的哈希值。方式和原因超出了此答案的范围。我敦促您在线上访问详细文本。

[还请记住,如果出于加密和敏感的原因使用MD5,请了解SHA256等更安全的建议哈希。

有关更多详细信息,请参阅this introductory text


-1
投票

您不能将MD5哈希值解密为单向进程。但是,如果MD5算法为每个可能的输入生成了不同的哈希值(不是),则有可能发现原始字符串。

> Read this

© www.soinside.com 2019 - 2024. All rights reserved.