SHA2_512加密C#和SQL方法给出不同的结果

萨吉斯·杜什曼莎(Sajith Dushmantha)

我已经使用此C#代码拦截了“ admin”一词

Byte[] inputBytes = Encoding.UTF8.GetBytes(stringpassword);
SHA512 shaM = new SHA512Managed();
Byte[] hashedBytes = shaM.ComputeHash(inputBytes);

string hashedpassword = BitConverter.ToString(hashedBytes);

并获得了此结果“ DA-EF-49-53-B9-78-33-65-CA-D6-61-52-23-72-05-06-CC”。并且我使用SQL存储过程对同一个单词“ admin”进行加密

SET @password = HASHBYTES('SHA2_512',@password);

并将其作为输出“ÇDËv*]¤RùèTýÁàç¥* 8_#óê±Ø“ÔrcMúÇÓN¼5Ñj·ûŠÈ”

为什么这些方法之间有区别?

贾里德·罗素(Jared Russell)

HASHBYTES函数文档中:

返回值

varbinary(最大8000个字节)

这里的问题是,您试图将任意二进制数据(HASHBYTES的输出)解释为文本值,这将不起作用。在这种情况下,SQL Server尝试将原始字节值解释为数据库正在使用的任何归类中的字符。

以文本形式表示二进制数据的标准方法是将其转换为base64表示形式。为此,请在C#中将最后一行替换为:

string hashedpassword = Convert.ToBase64String(hashedBytes);

然后在您的SQL中,您可以执行以下操作将哈希值转换为base64(基于此SO答案):

DECLARE @hashedValue VARBINARY(8000) = HASHBYTES('SHA2_512', 'admin')
SELECT
    CAST(N'' AS XML).value(
          'xs:base64Binary(xs:hexBinary(sql:column("bin")))'
        , 'VARCHAR(MAX)'
    )   Base64Encoding
FROM (
    SELECT @hashedValue AS bin
) AS bin_sql_server_temp;

如果运行此命令,将会观察到base64编码值是相同的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SHA2_512加密C#和SQL方法给出不同的结果

来自分类Dev

SQL Server验证SHA2_512哈希过程

来自分类Dev

Node JS和C#中的AES加密给出不同的结果

来自分类Dev

尝试在C#和Node.js加密之间匹配SHA512哈希

来自分类Dev

在C#和PHP中,AES加密的结果不同

来自分类Dev

C#和PHP的AES加密结果不同

来自分类Dev

C#和Cryptojs的TripleDESCryptoServiceProvider给出不同的结果

来自分类Dev

HMAC-SHA512的不确定行为每次给出不同的结果

来自分类Dev

按位移位和字节强制转换在Java和C#中给出不同的结果

来自分类Dev

按位移位和字节强制转换在Java和C#中给出不同的结果

来自分类Dev

使用 hmac 和 sha256 的 Python 加密没有给出与 javascript 相同的结果

来自分类Dev

SHA1在Objective-C和C#中产生不同的结果

来自分类Dev

POST SHA512加密的字符串作为HTTP标头(在C#中)

来自分类Dev

SHA1(c#)-与.Net 3和.Net Core不同的结果

来自分类Dev

用Python代码编写的SHA 512加密输出与mkpasswd不同

来自分类Dev

对于大文件,sha256sum / md5sum给出不同的结果(Ext4 /全盘加密)

来自分类Dev

对于大文件,sha256sum / md5sum给出不同的结果(Ext4 /全盘加密)

来自分类Dev

C中的sha512哈希结果与其他语言(php,python)不同

来自分类Dev

C按位与-O0和-O2给出不同的结果

来自分类Dev

Python AES加密提供与原始C#代码不同的结果

来自分类Dev

C# & Javascript DES 加密返回不同的结果

来自分类Dev

Java和openssl C不同的AES CTR加密结果

来自分类Dev

SHA1 C# 结果与 Python 3 不同

来自分类Dev

python 2和3的相同代码给出了不同的结果

来自分类Dev

C程序在OSX和Windows上给出不同的结果

来自分类Dev

C程序在OSX和Windows上给出不同的结果

来自分类Dev

lldb 和 C 代码对 pow() 给出不同的结果

来自分类Dev

C pread给出不同的结果

来自分类Dev

C#和C ++之间的SHA1不同

Related 相关文章

  1. 1

    SHA2_512加密C#和SQL方法给出不同的结果

  2. 2

    SQL Server验证SHA2_512哈希过程

  3. 3

    Node JS和C#中的AES加密给出不同的结果

  4. 4

    尝试在C#和Node.js加密之间匹配SHA512哈希

  5. 5

    在C#和PHP中,AES加密的结果不同

  6. 6

    C#和PHP的AES加密结果不同

  7. 7

    C#和Cryptojs的TripleDESCryptoServiceProvider给出不同的结果

  8. 8

    HMAC-SHA512的不确定行为每次给出不同的结果

  9. 9

    按位移位和字节强制转换在Java和C#中给出不同的结果

  10. 10

    按位移位和字节强制转换在Java和C#中给出不同的结果

  11. 11

    使用 hmac 和 sha256 的 Python 加密没有给出与 javascript 相同的结果

  12. 12

    SHA1在Objective-C和C#中产生不同的结果

  13. 13

    POST SHA512加密的字符串作为HTTP标头(在C#中)

  14. 14

    SHA1(c#)-与.Net 3和.Net Core不同的结果

  15. 15

    用Python代码编写的SHA 512加密输出与mkpasswd不同

  16. 16

    对于大文件,sha256sum / md5sum给出不同的结果(Ext4 /全盘加密)

  17. 17

    对于大文件,sha256sum / md5sum给出不同的结果(Ext4 /全盘加密)

  18. 18

    C中的sha512哈希结果与其他语言(php,python)不同

  19. 19

    C按位与-O0和-O2给出不同的结果

  20. 20

    Python AES加密提供与原始C#代码不同的结果

  21. 21

    C# & Javascript DES 加密返回不同的结果

  22. 22

    Java和openssl C不同的AES CTR加密结果

  23. 23

    SHA1 C# 结果与 Python 3 不同

  24. 24

    python 2和3的相同代码给出了不同的结果

  25. 25

    C程序在OSX和Windows上给出不同的结果

  26. 26

    C程序在OSX和Windows上给出不同的结果

  27. 27

    lldb 和 C 代码对 pow() 给出不同的结果

  28. 28

    C pread给出不同的结果

  29. 29

    C#和C ++之间的SHA1不同

热门标签

归档