国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

利用MSSQL sp自制未公開的加密函數(shù)

2024-08-31 00:49:26
字體:
供稿:網(wǎng)友
microsoft sql server是如何加密口令的?如何自制未公開的加密函數(shù)?

  如果對mssql的用戶信息有興趣的,可能會發(fā)現(xiàn)master.dbo.sysxlogins里面存放著用戶的口令,可是呢,password字段如果不是null就是一堆看不懂的binary,這個口令是怎么加密的呢?

  其實只要仔細看看master.dbo.sp_addlogin就知道了,mssql的sp都可以看到代碼,真是不錯。


  讓我們來看看它是怎么做的,注意這一行select @passwd = pwdencrypt(@passwd),這個時后@passwd就被加密了,讓我們也來試一下

declare @clearpwd varchar(255)
declare @encryptedpwd varbinary(255)
select @clearpwd = 'test'
select @encryptedpwd = convert(varbinary(255), pwdencrypt(@clearpwd))
select @encryptedpwd


  看上去不錯,確實被加密了,可是我怎么還原呢?

  呵呵,這就沒戲了,口令加密都是單向的,用加密后的密文來比較就可以了。

  繼續(xù)看看其它用戶相關的sp,可以發(fā)現(xiàn)master.dbo.sp_password里面有口令比較的內(nèi)容。

pwdcompare(@old, password, (case when xstatus&2048 = 2048 then 1 else 0 end))


  不用去理會xstatus,這是一個狀態(tài)掩碼,一般我們用的時候就直接用0就可以了

declare @clearpwd varchar(255)
declare @encryptedpwd varbinary(255)
select @clearpwd = 'test'
select @encryptedpwd = convert(varbinary(255), pwdencrypt(@clearpwd))
select pwdcompare(@clearpwd, @encryptedpwd, 0)
select pwdcompare('errorpassword', @encryptedpwd, 0)


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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沈阳市| 成武县| 景泰县| 舒城县| 崇明县| 满城县| 凌海市| 儋州市| 罗甸县| 镇江市| 安化县| 尼玛县| 八宿县| 拜泉县| 威信县| 加查县| 伽师县| 丰都县| 辽中县| 博罗县| 永清县| 都江堰市| 永福县| 乌拉特前旗| 平江县| 云林县| 牟定县| 松潘县| 方正县| 阳高县| 崇阳县| 扎囊县| 陆河县| 新沂市| 铁岭县| 翼城县| 娄底市| 曲靖市| 无极县| 乐至县| 山丹县|