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
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 }