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 設定值時...