mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-04 16:50:57 +00:00
64 lines
1.7 KiB
Java
64 lines
1.7 KiB
Java
import java.security.*;
|
|
|
|
class md5test {
|
|
|
|
|
|
// gnu-crypto/source/gnu/testlet/gnu/crypto/hash/TestOfMD5.java
|
|
|
|
public static void main(String[] argv) {
|
|
String[] strings = {
|
|
"a",
|
|
"abc",
|
|
"message digest",
|
|
"abcdefghijklmnopqrstuvwxyz",
|
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
|
|
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"
|
|
};
|
|
|
|
String[] expected = {
|
|
"0CC175B9C0F1B6A831C399E269772661",
|
|
"900150983CD24FB0D6963F7D28E17F72",
|
|
"F96B697D7CB7938D525A2F31AAF161D0",
|
|
"C3FCD3D76192E4007DFB496CCA67E13B",
|
|
"D174AB98D277D9F5A5611C2C9F419D9F",
|
|
"57EDF4A22BE3C955AC49DA2E2107B67A"
|
|
};
|
|
|
|
for (int i = 0; i < strings.length; i++)
|
|
testString(strings[i], expected[i]);
|
|
|
|
}
|
|
|
|
public static void testString(String string, String expected) {
|
|
|
|
MessageDigest md=null;
|
|
try {
|
|
md = MessageDigest.getInstance("MD5");
|
|
md.update(string.getBytes(), 0, string.length());
|
|
String result = toString(md.digest());
|
|
System.out.println(expected);
|
|
System.out.println(result);
|
|
if (!expected.equals(result))
|
|
System.out.println("NOT EQUAL!");
|
|
} catch (Exception x) {
|
|
x.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static String toString(byte[] ba) {
|
|
return toString(ba, 0, ba.length);
|
|
}
|
|
public static final String toString(byte[] ba, int offset, int length) {
|
|
char[] buf = new char[length * 2];
|
|
for (int i = 0, j = 0, k; i < length; ) {
|
|
k = ba[offset + i++];
|
|
buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F];
|
|
buf[j++] = HEX_DIGITS[ k & 0x0F];
|
|
}
|
|
return new String(buf);
|
|
}
|
|
|
|
private static final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
|
|
|
|
}
|