Mercurial > hg > Database > Christie
view src/main/java/christie/topology/manager/CreateHash.java @ 121:8949d0ecf1f6
refactor Topology
author | akahori |
---|---|
date | Tue, 11 Dec 2018 15:46:09 +0900 |
parents | c0c29f989af3 |
children |
line wrap: on
line source
package christie.topology.manager; import christie.annotation.Peek; import christie.annotation.Take; import christie.codegear.CodeGear; import christie.codegear.CodeGearManager; import org.apache.commons.lang3.RandomStringUtils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.LinkedList; public class CreateHash extends CodeGear{ @Take String orderHash; @Peek LinkedList<String> createdList; public CreateHash(){ } @Override protected void run(CodeGearManager cgm) { boolean checkNewStr = false; String raw = null; while (!checkNewStr){ raw = RandomStringUtils.randomAscii(10); // checking raw String has already created int count = 0; for (String str : createdList) { if (raw.equals(str)) break; count++; } if (count == createdList.size()) checkNewStr = true; } createdList.add(raw); try { // convert to MD5 String MD5 = convertMD5(raw); getLocalDGM().put("MD5", MD5); } catch (NoSuchAlgorithmException e) { System.out.println("cannot convert MD5"); } cgm.setup(new CreateHash()); } private String convertMD5(String raw) throws NoSuchAlgorithmException{ MessageDigest md = MessageDigest.getInstance("MD5"); md.update(raw.getBytes()); byte[] hash = md.digest(); StringBuilder builder = new StringBuilder(); for (byte aHash : hash) { if ((0xff & aHash) < 0x10) { builder.append("0" + Integer.toHexString((0xff & aHash))); } else { builder.append(Integer.toHexString((0xff & aHash))); } } return builder.toString(); } }