43
|
1 package christie.topology.manager;
|
|
2
|
|
3
|
|
4 import christie.annotation.Take;
|
|
5 import christie.codegear.CodeGear;
|
|
6
|
|
7 import christie.codegear.CodeGearManager;
|
|
8 import org.apache.commons.lang3.RandomStringUtils;
|
|
9
|
|
10 import java.security.MessageDigest;
|
|
11 import java.security.NoSuchAlgorithmException;
|
|
12 import java.util.LinkedList;
|
|
13
|
|
14 public class CreateHash extends CodeGear{
|
|
15 // this CodeSegment change raw string to MD5
|
|
16
|
|
17 // Question: orderHashどこで使われているかわかんない
|
|
18 //@Take
|
|
19 //orderHash;
|
|
20
|
|
21 @Take
|
|
22 LinkedList<String> createdList;
|
|
23
|
|
24
|
|
25 public CreateHash(){ }
|
|
26
|
|
27 @Override
|
|
28 protected void run(CodeGearManager cgm) {
|
|
29
|
|
30 boolean checkNewStr = false;
|
|
31 String raw = null;
|
|
32
|
|
33 while (!checkNewStr){
|
|
34 raw = RandomStringUtils.randomAscii(10);
|
|
35 // checking raw String has already created
|
|
36 int count = 0;
|
|
37 for (String str : createdList) {
|
|
38 if (raw.equals(str)) break;
|
|
39 count++;
|
|
40 }
|
|
41
|
|
42 if (count == createdList.size()) checkNewStr = true;
|
|
43 }
|
|
44 createdList.add(raw);
|
|
45 getLocalDGM().put("createdList", createdList);
|
|
46
|
|
47 try { // convert to MD5
|
|
48 String MD5 = convertMD5(raw);
|
|
49
|
|
50 getLocalDGM().put("MD5", MD5);
|
|
51 } catch (NoSuchAlgorithmException e) {
|
|
52 System.out.println("cannot convert MD5");
|
|
53
|
|
54 }
|
|
55 cgm.setup(new CreateHash());
|
|
56 }
|
|
57
|
|
58 private String convertMD5(String raw) throws NoSuchAlgorithmException{
|
|
59 MessageDigest md = MessageDigest.getInstance("MD5");
|
|
60 md.update(raw.getBytes());
|
|
61 byte[] hash = md.digest();
|
|
62 StringBuilder builder = new StringBuilder();
|
|
63 for (byte aHash : hash) {
|
|
64 if ((0xff & aHash) < 0x10) {
|
|
65 builder.append("0" + Integer.toHexString((0xff & aHash)));
|
|
66 } else {
|
|
67 builder.append(Integer.toHexString((0xff & aHash)));
|
|
68 }
|
|
69 }
|
|
70 return builder.toString();
|
|
71 }
|
|
72
|
|
73 }
|