Mercurial > hg > Database > Christie-sharp
view topology/manager/CreateHash.cs @ 61:1a42115e51bb
fix
author | KaitoMaeshiro <aosskaito@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 28 Jan 2022 23:15:05 +0900 |
parents | 14222beab95b |
children | 976d43003487 |
line wrap: on
line source
using System; using System.Text; using System.Linq; using System.Security.Cryptography; using System.Collections.Generic; using Christie_net.annotation; using Christie_net.codegear; 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(); */ var sha1 = SHA1Managed.Create(); byte[] inputBytes = Encoding.ASCII.GetBytes(raw); byte[] hash = sha1.ComputeHash(inputBytes); //return BitConverter.ToString(outputBytes).Replace("-", "").ToLower(); StringBuilder builder = new StringBuilder(); foreach (byte aHash in hash) { if ((0xff & aHash) < 0x10) { builder.Append("0" + (0xff & aHash).ToString("x")); } else { builder.Append((0xff & aHash).ToString("x")); } } return builder.ToString(); } } }