mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			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();
 | 
						|
 | 
						|
}
 |