Хэш-функция C# и хэш-функция сервера SQL, та же реализация?

Я хочу иметь как на уровне C#, так и на уровне SQL Server 2012.

Как узнать, даст ли реализация SHA1 те же результаты?

В SQL Server я делаю:

HASHBYTES('SHA1', @data)

Я еще не написал свою функцию C#.

Я просто волнуюсь, если они не выдают одинаковое значение хеша, я получу некоторые несоответствия в моем приложении.

Примечание. Для создания хэша я буду использовать столбцы datetime, nvarchar и int. Я должен преобразовать их в строки правильно?

1 ответ

У вас не будет проблем с использованием этого кода:

    public static byte[] GetHash(string inputString)
    {
        HashAlgorithm algorithm = SHA1.Create();
        return algorithm.ComputeHash(Encoding.Unicode.GetBytes(inputString));
    }

Он создает тот же хеш, который вы можете создать на SQL Server:

HASHBYTES('SHA1', CAST(@data AS NVARCHAR(100)))
Другие вопросы по тегам