简体   繁体   English

如何从Hashbytes函数的SHA2_256加密数据类型转换为SQL Server 2012中的varchar(256)

[英]How to convert from Hashbytes function's SHA2_256 encryption datatype to varchar(256) in SQL Server 2012

I want to implement a password encryption system using SQL in SQL Server 2012. 我想在SQL Server 2012中使用SQL实现密码加密系统。

The HASHBYTES method must have only nvarchar , varbinary datatype. HASHBYTES方法必须仅具有nvarcharvarbinary数据类型。

update members 
set passwd = cast(HASHBYTES('SHA2_256', 'asd123123') as varchar(256)),
    pwchangedat = GETDATE()
where userid = 'abcd1234'

The unexpected result of the Select query applied above update query: 在更新查询上方应用Select查询的意外结果:

?lZX?갅4磎?닽뙷?I?#?뚭?

I want to fix this varchar(256) data type string 'asd123123' applied SHA-256 encryption. 我想修复此应用了SHA-256加密的varchar(256)数据类型字符串'asd123123'。

I want: 我想要:

c82a6c7f5a58a915814334cda5a2ef88ab8cba922f49ec1623e2248ceabf7ddc

How can I get a solution? 如何获得解决方案?

Regards, 问候,

I think this is what you are looking for... 我认为这就是您要寻找的...

select convert(varchar(256),HASHBYTES('SHA2_256','asd123123'),2)

See the Binary Styles Section (since Hashbytes returns varbinary) 请参见“ 二进制样式”部分 (因为Hashbytes返回varbinary)

Thus.... 从而....

update members set
    passwd = convert(varchar(256),HASHBYTES('SHA2_256','asd123123'),2),
    pwchangedat = GETDATE()
    where userid = 'abcd1234'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM