通过代码或SQL脚本加密SQL 2000中的列

Kin*_*ngs 7 sql encryption sql-server-2000

我正在使用SQL 2000.表''用户'中有一个字符串列'Password'.它有大约3k行.我的要求是加密"密码"列的所有值.此外,我应该能够在需要时解密这些加密的密码字段.

我知道,从SQL 2005开始,有内置的功能主义者可以满足这些要求.但我担心SQL 2000.

通过VB代码或SQL脚本建议是否有任何方法可以达到我的要求.不使用任何第三方工具.我搜索了很多地方但没有成功.

谢谢.

Par*_*ram 5

您可以使用SQL Server 2000中可用的未记录PWDENCRYPTPWDCOMPARE函数 -

CREATE TABLE #USER
(
    LOGIN_ID varchar(20),
    UserPassword  nvarchar(256)
)

-- Encrypt & Insert Password
-- Note: You will have to write UPDATE on existing records
INSERT #USER VALUES ( 'my_loginid', PWDENCRYPT('MyPassword1'))


DECLARE @InputPassword VARCHAR(100)
DECLARE @IsValid INT = 0

-- Test for Correct Password

SET @InputPassword = 'MyPassword1'

SET @IsValid = (SELECT PWDCOMPARE(@InputPassword, UserPassword, 0)
                FROM #USER
                WHERE LOGIN_ID = 'my_loginid')


SELECT @IsValid AS 'Test1';

-- Test for Wrong Password

SET @InputPassword = 'WrongPassword'

SET @IsValid = (SELECT PWDCOMPARE(@InputPassword, UserPassword, 0)
                FROM #USER
                WHERE LOGIN_ID = 'my_loginid')

SELECT @IsValid AS 'Test2'

DROP TABLE #USER
Run Code Online (Sandbox Code Playgroud)

参考链接 -