1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.rice.kns.util;
20
21 import java.security.MessageDigest;
22 import java.security.NoSuchAlgorithmException;
23
24 import org.apache.ojb.broker.util.GUID;
25
26
27
28
29
30
31 public class Guid {
32
33 private final static char HYPHEN='-';
34 private final static String DIGITS="0123456789ABCDEF";
35 private String stringValue=null;
36 private GUID guid;
37
38 public Guid() {
39
40 guid = new GUID();
41
42
43 String guidString=guid.toString();
44
45
46
47
48 MessageDigest sha;
49 try {
50 sha = MessageDigest.getInstance("SHA-1");
51 }
52 catch (NoSuchAlgorithmException e) {
53 throw new RuntimeException(e);
54 }
55 sha.update(guidString.getBytes());
56 byte[] hash=sha.digest();
57
58 StringBuffer result=new StringBuffer();
59 for (int i=0; i<hash.length; i++) {
60 result.append(toHex(hash[i]));
61 }
62
63
64 for (int i=20; i>4; i-=4) {
65 result.insert(i,HYPHEN);
66 }
67
68
69 result.delete(32,40);
70 stringValue=result.toString();
71 }
72
73 public static String toHex(byte b) {
74
75 int ub=b<0?b+256:b;
76
77 StringBuffer result=new StringBuffer(2);
78 result.append(DIGITS.charAt(ub/16));
79 result.append(DIGITS.charAt(ub%16));
80
81 return result.toString();
82 }
83
84 @Override
85 public String toString() {
86 return stringValue;
87 }
88
89 }