未公开的SQL Server口令的加密函数
发布日期:2022-02-05 11:49 | 文章来源:脚本之家
其实只要仔细看看master.dbo.sp_addlogin就知道了,MSSQL的sp都可以看到代码,真是不错。
让我们来看看它是怎么做的,注意这一行select@passwd=pwdencrypt(@passwd),这个时后@passwd就被加密了,让我们也来试一下
DECLARE@ClearPWDvarchar(255)
DECLARE@EncryptedPWDvarbinary(255)
SELECT@ClearPWD='test'
SELECT@EncryptedPWD=CONVERT(varbinary(255),pwdencrypt(@ClearPWD))
SELECT@EncryptedPWD
看上去不错,确实被加密了,可是我怎么还原呢?
口令加密都是单向的,用加密后的密文来比较就可以了。
继续看看其它用户相关的sp,可以发现master.dbo.sp_password里面有口令比较的内容。
pwdcompare(@old,password,(CASEWHENxstatus&2048=2048THEN1ELSE0END))
不用去理会xstatus,这是一个状态掩码,一般我们用的时候就直接用0就可以了
DECLARE@ClearPWDvarchar(255)
DECLARE@EncryptedPWDvarbinary(255)
SELECT@ClearPWD='test'
SELECT@EncryptedPWD=CONVERT(varbinary(255),pwdencrypt(@ClearPWD))
SELECTpwdcompare(@ClearPWD,@EncryptedPWD,0)
SELECTpwdcompare('ErrorPassword',@EncryptedPWD,0)
这样我们就可以使用这两个函数来加密自己的密码了
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。
相关文章
上一篇:
SQL SERVER的数据类型
下一篇: