Нужен эквивалент C# для приведенной ниже функции SQL HashBytes.C#

Место общения программистов C#
Ответить
Anonymous
 Нужен эквивалент C# для приведенной ниже функции SQL HashBytes.

Сообщение Anonymous »

Я создал хеш-значение, используя функцию ниже в sql

SQL-запрос

Код: Выделить всё

Select hashbytes('MD5', PNumber+CONVERT(VARCHAR(50),cast(datestamp as  binary),1))
From dbo.Events
Теперь мне нужно получить эквивалентную функцию C#, чтобы получить хэш-значение и передать его хранимой процедуре.

Я использую приведенный ниже код, чтобы получить эквивалент C#. Но значения не совпадают

Код C#

Код: Выделить всё

var strDate = policyEventFromQueue.DateStamp.ToString();
var binaryvalue = Encoding.Unicode.GetBytes(strDate);
var hashkey = GetMD5Hash(PNumber + binaryvalue);

public static byte[] GetMD5Hash(string input)
{
System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] bs = System.Text.Encoding.Unicode.GetBytes(input);

bs = x.ComputeHash(bs);
return bs;
}
Вот результаты тестирования:

Из SQL Server:

Код: Выделить всё

PNumber ='4272535529'
DateStamp ='2016-06-30 12:19:35.257961'

HashValue : 0x104E09499B76CB59420AEEEDBBE187F8
В C# я получаю значение из значения поля БД, как показано ниже

Код: Выделить всё

[0]: 16
[1]: 78
[2]: 9
[3]: 73
[4]: 155
[5]: 118
[6]: 203
[7]: 89
[8]: 66
[9]: 10
[10]: 238
[11]: 237
[12]: 187
[13]: 225
[14]: 135
[15]: 248
Из функции C# GetMD5Hash я получаю значение, как показано ниже

Код: Выделить всё

[0]: 30
[1]: 153
[2]: 105
[3]: 203
[4]: 34
[5]: 124
[6]: 20
[7]: 12
[8]: 207
[9]: 113
[10]: 210
[11]: 144
[12]: 18
[13]: 145
[14]: 22
[15]: 36
Любое предложение будет оценено по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/387 ... s-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»