我有三个Java字符串,比如说这个例子。
String test = "Hi, ";
String test1 = "this is ";
String test2 = "Java programming!";
我想把这3个字符串合并并转换为md5格式,应该怎么做?我已经使用MessageDigest类对一个字符串进行了处理,但不知道如何将3个字符串追加在一起再进行md5处理。另外,我也想将md5转换回字符串,需要使用外部库吗?
我有三个Java字符串,比如说这个例子。
String test = "Hi, ";
String test1 = "this is ";
String test2 = "Java programming!";
我想把这3个字符串合并并转换为md5格式,应该怎么做?我已经使用MessageDigest类对一个字符串进行了处理,但不知道如何将3个字符串追加在一起再进行md5处理。另外,我也想将md5转换回字符串,需要使用外部库吗?
反转MD5不是真正可行的,因为:
您可能已经看到了很多提供反向MD5的网站(例如-选项1,选项2)。 这些网站存储已使用的“字符串和MD5”的映射(因此,如果您使用复杂字符串,它们将无法推断出原始字符串)。
回到第一部分
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),在这种情况下,只有623(238,328)种组合。
希望这可以帮助您。 :)
MD5不是一种格式,也不是加密算法。
MD5是一个哈希函数。这意味着,将长文本转换为短摘要 - 对于除非很短的输入,否则此转换显然会有损失。通常情况下,从MD5无法还原为纯文本。