C# sql中的PHPMD5加密
我需要您帮助实现从C代码到sql server的加密过程 下面是我在c代码中得到的方法: 所以我想在SQLServer中也这样做。我尝试了这个,但没有得到相同的结果:C# sql中的PHPMD5加密,c#,sql-server,encryption,C#,Sql Server,Encryption,我需要您帮助实现从C代码到sql server的加密过程 下面是我在c代码中得到的方法: 所以我想在SQLServer中也这样做。我尝试了这个,但没有得到相同的结果: select Hashbytes('MD5', CONVERT(varchar(max),'nvhG#hdsdsqsd3H', 2) ) 结果为c#:f4ae6882a7e2aff90d58a29100c5bbf6 sql server中的结果:0xF4AE6882A7E2AFF90D58A29100C5BBF6 谁能帮我一下吗
select Hashbytes('MD5', CONVERT(varchar(max),'nvhG#hdsdsqsd3H', 2) )
结果为c#:f4ae6882a7e2aff90d58a29100c5bbf6
sql server中的结果:0xF4AE6882A7E2AFF90D58A29100C5BBF6
谁能帮我一下吗
非常感谢。只要找到这种看起来不错的方式:
select SUBSTRING(MASTER.dbo.Fn_varbintohexstr(Hashbytes('MD5', CONVERT(varchar(max),'nvhG#hdsdsqsd3H', 2) )), 3, 8000)
感谢您的帮助。看起来完全一样,一个在上面,另一个在下面,并且是二进制/十六进制,它们看起来完全一样。我真的不明白这里有什么问题。算法似乎是一样的。C#结果是否大写?如果需要,可以添加“0x”?十六进制值与大小写无关。1)
0x
是一个前缀,指示“后面是十六进制”。它是可选的,具体取决于上下文。2) 十六进制值的大小写并不重要。3) 即使这很重要,您也知道如何使用大写/小写和前缀字符串,不是吗?还有,加密!=散列。加密意味着解密的可能性,而(强)散列只能是一种方式。(MD5速度快,但加密能力不强)
select SUBSTRING(MASTER.dbo.Fn_varbintohexstr(Hashbytes('MD5', CONVERT(varchar(max),'nvhG#hdsdsqsd3H', 2) )), 3, 8000)