1. C# / Говнокод #4337

    +1001

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    string GetStringHash(string S)
            {
                MD5 md = MD5.Create();
                byte[] B = md.ComputeHash(Encoding.UTF8.GetBytes(S));
    
                return string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}",
                    B[0x00], B[0x01], B[0x02], B[0x03], B[0x04], B[0x05], B[0x06], B[0x07],
                    B[0x08], B[0x09], B[0x0A], B[0x0B], B[0x0C], B[0x0D], B[0x0E], B[0x0F]);
            }

    Запостил: 4eburashka, прямо перед выпилом ресурса.

    Запостил: 3.14159265, 11 Октября 2010

    Комментарии (8) RSS

    • А комменты кто восстанавливать будет ? :)
      Ответить
      • LOL. держи.
        4eburashka
        Простите, немного подправил ))
        string GetStringHash(string S)
        {
        MD5 md = MD5.Create();
        byte[] B = md.ComputeHash(Encoding.UTF8.GetBytes(S) );
        
        return string.Format("{0:x2}{1:x2}{2:x2}{3:x2}{ 4:x2}{5:x2}{6:x2}{7:x2}"+
        "{8:x2}{9:x2}{10:x2}{11:x2}{12:x2}{13:x2 }{14:x2}{15:x2}",
        B[0x0], B[0x1], B[0x2], B[0x3], B[0x4], B[0x5], B[0x6], B[0x7],
        B[0x8], B[0x9], B[0xA], B[0xB], B[0xC], B[0xD], B[0xE], B[0xF]);
        }

        absolut
        Индексация в хексе тоже порадовала :)

        Анонимус
        настоящий программер тем и отличается от ламера, что что на руках у него A пальцев
        Ответить
    • а я, дурак, думал, что
      > настоящий программер тем и отличается от ламера, что
      первый упрощает решение задачи, а второй -- усложняет в силу ЧСВ
      Ответить
    • Вот отличный вариант:

      public static class StringHash
      {
      static readonly char[] HexChars = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
      static readonly MD5 md5 = MD5.Create();
      static readonly Encoding UTF8 = Encoding.UTF8;

      static public string Get(string S)
      {
      byte[] B = md5.ComputeHash(UTF8.GetBytes(S));
      char[] ar = new char[B.Length * 2];

      int Index = 0;
      foreach (byte bv in B)
      {
      ar[Index++] = HexChars[bv >> 4];
      ar[Index++] = HexChars[bv & 0xF];
      }

      return new string(ar);
      }
      }
      Ответить
      • неплохо.

        >static readonly char[] HexChars = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
        помнится в былые времена, это делалось при помощи прямых рук и одного условия. хотя это более асм-стайл.
        может для явы массив и предпочтительней.
        Ответить
    • толковый подход!!!! плюсую
      Ответить
    • return B.ToString();
      ?
      Ответить

    Добавить комментарий