利用MSSQL sp自制未公开的加密函数

2016-01-29 16:46 0 1 收藏

利用MSSQL sp自制未公开的加密函数,利用MSSQL sp自制未公开的加密函数

【 tulaoshi.com - SQLServer 】

Microsoft SQL Server是如何加密口令的?如何自制未公开的加密函数?

  如果对MSSQL的用户信息有兴趣的,可能会发现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


  看上去不错,确实被加密了,可是我怎么还原呢?

  呵呵,这就没戏了,口令加密都是单向的,用加密后的密文来比较就可以了。

  继续看看其它用户相关的sp,可以发现master.dbo.sp_password里面有口令比较的内容。

pwdcompare(@old, password, (CASE WHEN xstatus&2048 = 2048 THEN 1 ELSE 0 END))

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)
  不用去理会xstatus,这是一个状态掩码,一般我们用的时候就直接用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)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)
  这样我们就可以使用这两个函数来加密自己的密码了:)

来源:https://www.tulaoshi.com/n/20160129/1499495.html

延伸阅读
VisualBasic的RND()函数有一个重要的特征:当RND()的参数(我们称这里可以称它为种子)为负值时,同一种子(负值)产生同一个随机数序列。同时VisualBasic还具有强大的二进制技术功能,这样我们可以按以下思路实现文件内容加密: X=RND(-KEY)'KEY为正数 VAULE=INT(256*RND)'产生一个随机数(以此为密码) OpenFILENAME$ForBin...
标签: SQLServer
  存储过程、存储函数的加密:WITH ENCRYPTION <!--[if !supportLineBreakNewLine]-- <!--[endif]-- CREATE procedure dbo.sp_XML_main @table_name nvarchar(260)='', @dirname nvarchar(20)='' WITH ENCRYPTION as begin .................................................... end go     存储过程、存...
标签: 电脑入门
现在只要一提到艳照门,网民就十分恐慌,都担心自己的隐私照片会不会有一天也被大众化。为保护个人隐私,十分有必要采取加密措施保证自己的隐私安全,这就需要借助一些工具软件来对文件或者文件夹进行加密,然而传统的加密方法往往引起别人的注意,稍微动点手脚,你的加密就形同虚设,下面就给大家介绍加密的好方法,那就是如何利用图片来进行加...
标签: ASP
  <% 'Last Updated By Recon On 05/14/2001 'On Error Resume Next '利用CDONTS组件在Win2k上发送邮件 '发送普通邮件 SendMail "admin@ny.com", "iamchn@263.net", "Normal Mail!", "Please check the attatchment!", 2, 0, "C:\Love.txt" '发送HTML邮件 Dim m_fso, m_tf Dim m...

经验教程

483

收藏

59
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部