IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库MSSQL → MsSQLServer未公开的加密函数

MsSQLServer未公开的加密函数

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

如果对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))
不用去理会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)
这样我们就可以使用这两个函数来加密自己的密码了,怎么样,还不错吧?

关键词标签:函数,加密,公开,selec

相关阅读 卡牌类手游排行榜2021前十名-卡牌类手游排行榜大全top10最好用的双核浏览器有哪些ASP实现长文章自动分页的函数代码PHP常用函数推荐ASP函数大全与解析JavaScript基本语法-函数

文章评论
发表评论

热门文章 SqlServer2005对现有数据进行分区具体步骤SqlServer2005对现有数据进行分区具体步骤sql server系统表损坏的解决方法sql server系统表损坏的解决方法MS-SQL2005服务器登录名、角色、数据库用户MS-SQL2005服务器登录名、角色、数据库用户Access、SQL Server、Oracle常见应用的区别Access、SQL Server、Oracle常见应用的区别

人气排行 如何远程备份(还原)SQL2000数据库配置和注册ODBC数据源-odbc数据源配置教程SQL2000数据库远程导入(导出)数据SQL2000和SQL2005数据库服务端口查看或修改SQL Server 2005降级到2000的正确操作步骤修改Sql Server唯一约束教程浅谈JSP JDBC来连接SQL Server 2005的方法SQL Server创建表语句介绍