未公開的SQL Server口令的加密函數(shù)
發(fā)布日期:2022-02-05 11:49 | 文章來源:腳本之家
其實只要仔細(xì)看看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
看上去不錯,確實被加密了,可是我怎么還原呢?
口令加密都是單向的,用加密后的密文來比較就可以了。
繼續(xù)看看其它用戶相關(guān)的sp,可以發(fā)現(xiàn)master.dbo.sp_password里面有口令比較的內(nèi)容。
pwdcompare(@old,password,(CASEWHENxstatus&2048=2048THEN1ELSE0END))
不用去理會xstatus,這是一個狀態(tài)掩碼,一般我們用的時候就直接用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)
這樣我們就可以使用這兩個函數(shù)來加密自己的密碼了
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
下一篇: