1 package fr.ifremer.quadrige3.core.security;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import java.io.ByteArrayOutputStream;
28 import java.security.MessageDigest;
29 import java.security.NoSuchAlgorithmException;
30 import java.util.StringTokenizer;
31
32
33
34
35
36
37 public class Encryption {
38
39 private static String getString(byte[] bytes) {
40 StringBuilder sb = new StringBuilder();
41 for (int i = 0; i < bytes.length; i++) {
42 byte b = bytes[i];
43 sb.append(0x00FF & b);
44 if (i + 1 < bytes.length) {
45 sb.append("-");
46 }
47 }
48 return sb.toString();
49 }
50
51 private static byte[] getBytes(String str) {
52 ByteArrayOutputStream bos = new ByteArrayOutputStream();
53 StringTokenizer st = new StringTokenizer(str, "-", false);
54 while (st.hasMoreTokens()) {
55 int i = Integer.parseInt(st.nextToken());
56 bos.write((byte) i);
57 }
58 return bos.toByteArray();
59 }
60
61
62
63
64
65
66
67 public static String md5(String source) {
68 try {
69 MessageDigest md = MessageDigest.getInstance("MD5");
70 byte[] bytes = md.digest(source.getBytes());
71 return getString(bytes);
72 } catch (NoSuchAlgorithmException e) {
73 e.printStackTrace();
74 return null;
75 }
76 }
77
78
79
80
81
82
83
84 public static String sha(String source) {
85 try {
86 MessageDigest md = MessageDigest.getInstance("SHA");
87 byte[] bytes = md.digest(source.getBytes());
88 return getString(bytes);
89 } catch (NoSuchAlgorithmException e) {
90 e.printStackTrace();
91 return null;
92 }
93 }
94 }