- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 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]);
}
absolut 11.10.2010 15:31 # +3
3.14159265 11.10.2010 15:48 # +7
4eburashka
Простите, немного подправил ))
absolut
Индексация в хексе тоже порадовала :)
Анонимус
настоящий программер тем и отличается от ламера, что что на руках у него A пальцев
da4ever 11.10.2010 22:30 # 0
Lure Of Chaos 11.10.2010 18:07 # −4
> настоящий программер тем и отличается от ламера, что
первый упрощает решение задачи, а второй -- усложняет в силу ЧСВ
LostPain 12.10.2010 14:40 # +2
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);
}
}
3.14159265 12.10.2010 15:55 # −1
>static readonly char[] HexChars = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
помнится в былые времена, это делалось при помощи прямых рук и одного условия. хотя это более асм-стайл.
может для явы массив и предпочтительней.
ursus 18.10.2010 16:54 # 0
bestoloch 30.10.2010 14:25 # −1
?