使用PWDENCRYPT

时间:2018-07-31 09:50:27

标签: sql-server sql-server-2017

我有一个使用数据库和带有登录名和密码的用户表的应用程序。密码未加密,因此我搜索了如何对其进行加密。 我使用SQL Server 2017,并且发现了PWDENCRYPT函数和PWDCOMPARE

所以我想更新我的用户表以加密所有密码,然后编辑我的应用程序以使用pwdcompare。

我之前进行过测试,并且有一些我不太了解的行为,除了PWDENCRYPT('password')PWDCOMPARE('password',password_hash)之类的基本用法之外,我在互联网上没有找到示例。

在SQL Server中,写入时:

select PWDENCRYPT('password')

我有加密密码,这里是:

0x02001691959A1D475E3DB65AE8F7E7B70E7929B8EF873F213C7B99DEED82D0E6B35289CB172C1998DDEDE058F9015FA2679EED387E718B4E06EB389223AA152C8793D8BA0CBA

如果我将此答案与密码进行比较,则返回值为1。 但是当我尝试更新表时可能会出错,因为响应是不一样的。

如果我仅尝试更新一个密码:

update test_table set password=PWDENCRYPT(password) where id=1

我有一条分配的行,但是当我进入表test_table时,密码的格式不同:

撷굪才踔韩ᰝ奦�畔ι规㿙⩬츀稉肉맿õ雟脀ꐁ燲턃悂샽冄⁽褜⃊޾               

我认为这很正常,所以我尝试将字符串“ password”与以下内容进行比较:

select PWDCOMPARE('password',撷굪才踔韩ᰝ奦�畔ι规㿙⩬츀稉肉맿õ雟脀ꐁ燲턃悂샽冄⁽褜⃊޾)

在这里,根据加密的密码,我在''或其他字符周围出现语法错误。

我搜索了原因,但是没有找到用于更新表的特定方法的SQL Server。暂时,我只是测试过要更新表中的一行,但是之后我想更新所有密码以对其进行加密。

感谢您阅读

0 个答案:

没有答案