Я пытаюсь выполнить проверку MD5 для файла, загруженного в поле varbinary в MSSQL 2005.
Я загрузил файл и использовал
SELECT DATALENGTH(thefile) FROM table
Я получаю то же количество байтов, что и файл.
Но используя калькулятор MD5 (из bullzip), я получаю этот MD5:
20cb960d7b191d0c8bc390d135f63624
и используя SQL я получаю это MD5:
44c29edb103a2872f519ad0c9a0fdaaa
Почему они отличаются, если поле имеет одинаковую длину, и поэтому я предполагаю, что одни и те же байты?
Мой код SQL для этого был:
DECLARE @HashThis varbinary;
DECLARE @md5text varchar(250);
SELECT @HashThis = thefile FROM CFile WHERE id=1;
SET @md5text = SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5',@HashThis)),3,32)
PRINT @md5text;
Может быть преобразование типов данных?
Любой совет будет полезен.
Большое спасибо:)