View Javadoc

1   package org.eparapher.core.crypto;
2   
3   import java.security.MessageDigest;
4   import java.security.NoSuchAlgorithmException;
5   import java.util.Map;
6   
7   import org.apache.log4j.Logger;
8   import org.eparapher.core.tools.HexCodec;
9   
10  public class EPDigestManager {
11  	
12  	private static Logger log = Logger.getLogger(EPDigestManager.class);
13  
14  	public static final String MD2 = "MD2";
15  	public static final String MD4 = "MD4";
16  	public static final String MD5 = "MD5";
17  	public static final String RIPEMD128 = "RIPEMD128";
18  	public static final String RIPEMD160 = "RIPEMD160";
19  	public static final String RIPEMD256 = "RIPEMD256";
20  	public static final String RIPEMD320 = "RIPEMD320";
21  	
22  	public static final String SHA1   = "SHA-1";
23  	public static final String SHA224 = "SHA-224";
24  	public static final String SHA256 = "SHA-256";
25  	public static final String SHA384 = "SHA-384";
26  	public static final String SHA512 = "SHA-512";
27  	public static final String TIGER  = "Tiger";
28  	public static final String GOST3411 = "GOST3411";
29  	public static final String WHIRLPOOL  = "Whirlpool";
30  
31  	public final static String[] DIGESTFORMAT = {
32  		MD2, MD4, MD5, RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320,
33  		SHA1, SHA224, SHA256, SHA384, SHA512,
34  		TIGER, GOST3411, WHIRLPOOL};
35  
36  	private static Map mds = null;
37  	
38  	private static EPDigestManager singleton;
39  
40  	public static EPDigestManager getInstance() {
41  		if (singleton == null)
42  			singleton = new EPDigestManager();
43  		return singleton;
44  	}
45  
46  	public byte[] hash(String alg, byte[] content) throws NoSuchAlgorithmException {
47  		byte[] returnValue = null;
48  		MessageDigest md = null;
49  
50  		//TODO : store instance in map
51  		md = MessageDigest.getInstance(alg);
52  		md.update(content);
53  		returnValue = md.digest();
54  
55  		return returnValue;
56  	}
57  	
58  	public String hashInHex(String alg,byte[] content) throws NoSuchAlgorithmException {
59  		return new String( HexCodec.bytesToHex(hash( alg, content )) );
60  	}
61  	
62  }