Mercurial > hg > Database > Christie-sharp
view topology/manager/CreateHash.cs @ 60:14222beab95b
fix
author | KaitoMaeshiro <aosskaito@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 27 Jan 2022 18:05:42 +0900 |
parents | |
children | 1a42115e51bb |
line wrap: on
line source
using System; using System.Text; using System.Linq; using System.Security.Cryptography; using System.Collections.Generic; using Christie_net.daemon; using Christie_net.annotation; using Christie_net.codegear; using Christie_net.topology; namespace Christie_net.topology.manager { public class CreateHash : CodeGear { [Take] public String orderHash; [Peek] public LinkedList<String> createdList; public CreateHash() { } public override void Run(CodeGearManager cgm) { Boolean checkNewStr = false; String raw = null; while (!checkNewStr) { //raw = RandomStringUtils.randomAscii(10); raw = RandomString(); // checking raw String has already created int count = 0; foreach (String str in createdList) { if (raw.Equals(str)) break; count++; } if (count == createdList.Count) checkNewStr = true; } createdList.AddLast(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 static Random random = new Random(); public static string RandomString(int length = 10) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; return new string(Enumerable.Repeat(chars, length) .Select(s => s[random.Next(s.Length)]).ToArray()); } private String convertMD5(String raw) /*throws NoSuchAlgorithmException*/ { MessageDiges md = MessageDiges.getInstance("MD5"); md.update(raw.GetBytes()); byte[] hash = md.digest(); StringBuilder builder = new StringBuilder(); foreach (byte aHash in hash) { if ((0xff & aHash) < 0x10) { builder.Append("0" + Integer.ToHexString((0xff & aHash))); } else { builder.Append(Integer.toHexString((0xff & aHash))); } } return builder.ToString(); } } }