Java 将字符串转换为 md5,反之亦然
Java convert string to md5 and vise versa
我有 java 三个字符串。举个例子。
String test = "Hi, ";
String test1 = "this is ";
String test2 = "Java programming!";
我想合并这 3 个字符串并将其更改为 md5 格式。我怎么办?我将 MessageDigest class 用于一个字符串,但我不知道如何在更改为 md5 之前附加 3 个字符串。我想将 md5 改回字符串。我需要外部图书馆吗?
MD5 不是一种格式,也不是一种加密算法。
MD5 是一个散列函数。这意味着,从长文本到短摘要——除了非常短的输入之外,这种转换显然是有损的。一般来说,从 MD5 到纯文本是没有回头路的。
嗯,倒车 MD5 不太可行,因为 -
- 可以有多个字符串给出相同的 MD5(这称为哈希冲突。)
- 它被设计成很难 "reverse"
您会看到很多提供反向 MD5 的网站(如 - Option-1 , option-2)。
这些网站存储已使用的“String 和 MD5”的映射(因此,如果您使用复杂的字符串,他们将无法推断出原始字符串)。
回到第 1 部分
MessageDigest可用于计算Java中给定字符串的MD5。
它的用法相当简单 -
String testString="someText";
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] messageDigest = md.digest(testString.getBytes());
BigInteger number = new BigInteger(1, messageDigest);
String hashtext = number.toString(16);
所以在你的问题中,这取决于你想如何创建散列 -
方式 1 - 正如您所要求的那样 -
StringBuilder simpleString=new StringBuilder(test);
simpleString.append(test1);
simpleString.append(test2);
String testString=simpleString.toString();
最后调用上面定义的方法,输入为 - testString.
方法 2 - 我会建议您使用 MD5 的 MD5 来确保校验和。
Output = MD5(MD5(test)+MD5(test1)+MD5(test2))
您可以尝试对 3 个字符的字符串进行暴力破解。假设只允许英文字母(A-Z,a-z)和数字(0-9),则本例有"only"623(238,328)种组合。
希望对您有所帮助。 :)
我有 java 三个字符串。举个例子。
String test = "Hi, ";
String test1 = "this is ";
String test2 = "Java programming!";
我想合并这 3 个字符串并将其更改为 md5 格式。我怎么办?我将 MessageDigest class 用于一个字符串,但我不知道如何在更改为 md5 之前附加 3 个字符串。我想将 md5 改回字符串。我需要外部图书馆吗?
MD5 不是一种格式,也不是一种加密算法。
MD5 是一个散列函数。这意味着,从长文本到短摘要——除了非常短的输入之外,这种转换显然是有损的。一般来说,从 MD5 到纯文本是没有回头路的。
嗯,倒车 MD5 不太可行,因为 -
- 可以有多个字符串给出相同的 MD5(这称为哈希冲突。)
- 它被设计成很难 "reverse"
您会看到很多提供反向 MD5 的网站(如 - Option-1 , option-2)。 这些网站存储已使用的“String 和 MD5”的映射(因此,如果您使用复杂的字符串,他们将无法推断出原始字符串)。
回到第 1 部分
MessageDigest可用于计算Java中给定字符串的MD5。 它的用法相当简单 -
String testString="someText";
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] messageDigest = md.digest(testString.getBytes());
BigInteger number = new BigInteger(1, messageDigest);
String hashtext = number.toString(16);
所以在你的问题中,这取决于你想如何创建散列 -
方式 1 - 正如您所要求的那样 -
StringBuilder simpleString=new StringBuilder(test);
simpleString.append(test1);
simpleString.append(test2);
String testString=simpleString.toString();
最后调用上面定义的方法,输入为 - testString.
方法 2 - 我会建议您使用 MD5 的 MD5 来确保校验和。
Output = MD5(MD5(test)+MD5(test1)+MD5(test2))
您可以尝试对 3 个字符的字符串进行暴力破解。假设只允许英文字母(A-Z,a-z)和数字(0-9),则本例有"only"623(238,328)种组合。
希望对您有所帮助。 :)