利用sp自製未公開的加密函式

2021-06-16 01:08:32 字數 1129 閱讀 9453

microsoft是如何加密口令的?如何

自製未公開的

加密函式?

如果對mssql的使用者資訊有興趣的,可能會發現master.dbo.sysxlogins裡面存放著使用者的口令,可是呢,password欄位如果不是null就是一堆看不懂的binary,這個口令是怎麼加密的呢?

其實只要仔細看看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)

這樣我們就可以使用這兩個函式來加密自己的密碼了:)

未公開的SQL Server口令的加密函式

未公開的sql server口令的加密函式 如果對mssql的使用者資訊有興趣的,可能會發現master.dbo.sysxlogins裡面存放著使用者的口令,可是呢,password欄位如果不是null就是一堆看不懂的binary,這個口令是怎麼加密的呢?其實只要仔細看看master.dbo.sp ...

未公開的SQL Server口令的加密函式

如果對mssql的使用者資訊有興趣的,可能會發現master.dbo.sysxlogins裡面存放著使用者的口令,可是呢,password欄位如果不是null就是一堆看不懂的binary,這個口令是怎麼加密的呢?其實只要仔細看看master.dbo.sp addlogin就知道了,mssql的sp都...

PB絕對有用的未公開函式

已知乙個dw中的某列的列名 在字串變數中 以獲得這個列物件的dwo 方法是 dwobject ldwo use,ldwo name ldwo use dw 1.object ldwo name ldwo use.get attribute name false 這樣就可以在用setitem 設定值時...