sqlserver加密解密
存储过程困耐模解密(破解函数,过程,触汪缓发器,视图.仅限于SQLSERVER2000)
--*/
/*--调用示例:
--解密指定存储过程
exec sp_decrypt '存储过程名'
--*/
create PROCEDURE sp_decrypt(@objectName varchar(50))
AS
begin
begin tran
declare @objectname1 varchar(100),@orgvarbin varbinary(8000)
declare @sql1 nvarchar(4000),@sql2 nvarchar(4000),@sql3 nvarchar(4000),@sql4 nvarchar(4000),@sql5 nvarchar(4000),@sql6 nvarchar(4000),@sql7 nvarchar(4000),@sql8 nvarchar(4000),@sql9 nvarchar(4000),@sql10 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int,@status int,@type varchar(10),@parentid int
declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int
select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@ObjectName)
create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)
insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectName)
select @number=max(number) from #temp
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
if @type='P'亩段
set @sql1=(case when @number>1 then 'ALTER PROCEDURE '+ @objectName +';'+rtrim(@k)+' WITH ENCRYPTION AS '
else 'ALTER PROCEDURE '+ @objectName+' WITH ENCRYPTION AS '
end)
if @type='TR'
set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '
if @type='FN' or @type='TF' or @type='IF'
set @sql1=(case @type when 'TF' then
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '
when 'FN' then
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end'
when 'IF' then
'ALTER FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a'
end)
if @type='V'
set @sql1='ALTER VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 '
set @q=len(@sql1)
set @sql1=@sql1+REPLICATE('-',4000-@q)
select @sql2=REPLICATE('-',4000),@sql3=REPLICATE('-',4000),@sql4=REPLICATE('-',4000),@sql5=REPLICATE('-',4000),@sql6=REPLICATE('-',4000),@sql7=REPLICATE('-',4000),@sql8=REPLICATE('-',4000),@sql9=REPLICATE('-',4000),@sql10=REPLICATE('-',4000)
exec(@sql1+@sql2+@sql3+@sql4+@sql5+@sql6+@sql7+@sql8+@sql9+@sql10)
end
set @k=@k+1
end
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=@colid
begin
select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k
SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n and number=@k)
if @n=1
begin
if @type='P'
SET @OrigSpText2=(case when @number>1 then 'CREATE PROCEDURE '+ @objectName +';'+rtrim(@k)+' WITH ENCRYPTION AS '
else 'CREATE PROCEDURE '+ @objectName +' WITH ENCRYPTION AS '
end)
if @type='FN' or @type='TF' or @type='IF'--刚才有错改一下
SET @OrigSpText2=(case @type when 'TF' then
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end '
when 'FN' then
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns char(1) with encryption as begin return @a end'
when 'IF' then
'CREATE FUNCTION '+ @objectName+'(@a char(1)) returns table with encryption as return select @a as a'
end)
if @type='TR'
set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '
if @type='V'
set @OrigSpText2='CREATE VIEW '+@objectname+' WITH ENCRYPTION AS SELECT 1 '
set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE('-',@q)
end
else
begin
SET @OrigSpText2=REPLICATE('-', 4000)
end
--start counter
SET @i=1
--fill temporary variable
SET @resultsp = replicate(N'A', (datalength(@OrigSpText1) / 2))
--loop
WHILE @i<=datalength(@OrigSpText1)/2
BEGIN
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))
set @resultsp=(case when @encrypted=1
then @resultsp
else convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end)
end)
print @resultsp
--execute( @resultsp)
set @n=@n+1
end
end
set @k=@k+1
end
drop table #temp
rollback tran
end
GO
‘贰’ sqlserver 怎么查看表的数据是加密的
在SQl2005下自带的函数hashbytes() ,此函数是微软在SQL SERVER 2005中提供的,可以用来计算一个字符串的 MD5 和 SHA1 值,使用方法如下:
--获取123456的MD5加密串
select hashbytes('MD5', '123456') ;
--获取123456的SHA1加密串
select hashbytes('SHA1', '123456') ;有了这个函数可以在sqlserver中为字符串进行加密,但是hashbytes() 函数的返回结果是 varbinary类型,(以 0x 开头 16 进制形式的二进制数据)通常情况下,我们需要的都是字符串型的数据,很多人首先想到的可能就是用 CAST 或 Convert 函数将varbinary 转换为 varchar,但这样转换后的结果会是乱码,正确转换 varbinary 可变长度二进制型数据到 16 进制字符串应该使用系统内置函数 sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select sys.fn_varbintohexstr(hashbytes('MD5', '123456'))
然后就可以截取需要的部分select lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))为md5加密串。
‘叁’ SQLSERVER 2000下载
一步筛选:在 所有网站 华军 天空 PCHOME 21CN 太平洋 eNet 驱动之家 其它网站 中的搜索结果
1. 多功能密码破解软件 4.5
目前本版本可以破解Access97/2000/xp密码,Word/Excel97/2000/xp、SQLSERVER(本地和
www.onlinedown.net/soft/38220.htm
2. 有线电视多功能收费管理系统 7.69
本系统采用SQLserver2000数据库(sqlserver增强版)或 Access2000数据
download.pchome.net/instry/library/16261.html
3. 随心SQL2000安装 2.5
自动安装SQLServer数据库服务器;自动创建数据库;自动安装业务系统;自动修改配置文
www.onlinedown.net/soft/16514.htm
4. mssql2000通用抽奖程序 1.0
该程序为PB开发,仅支持SQLServer2000数据库。运行环境为WINDOW2000XPNT98+MSSQL20
www.onlinedown.net/soft/25619.htm
5. 钟鼎文协同办公系统标准版 2.2
安装前须知:1、在WINDOWS2000/2003系统安装2、安装SQLSERVER2000数据库系统功能:知
www.onlinedown.net/soft/37944.htm
6. 华锐学校管理系统 1.41 build 1219
华锐学校管理系统采用客户端/数据库模式设计。数据库采用SQLServer2000。保证了数据查
www.onlinedown.net/soft/22607.htm
7. sqlserver数据库自动备份 2.0
一、系统要求:1、sqlserver服务器或者客户端程序。2、win98、win2000、winxp(win2003
www.onlinedown.net/soft/31759.htm
8. SQL密码处理器 2.0
是一款针对SQLServer7.0或SQLServer2000的存储过程、视图、触发器和函数进行加密和解
www.onlinedown.net/soft/30383.htm
9. WebICQ即时聊天工具 3.0
是一个Web聊天工具.安装说明:1、安装数据库,本系统使用SQLServer2000,请打开SQLServ
www.onlinedown.net/soft/31476.htm
10. 铝加工(铝型材)生产管理信息系统 1.0.0.98
1、该软件是我2003年2月底开始编写的,软件开发环境:Delphi6.0+Win2000+SQLServer200
www.onlinedown.net/soft/21566.htm
11. 易灵通物业管理软件 1.0
易灵通物业管理系统采用SQLServer2000与Delphi6.0开发而成。系统稳定可靠,源于分部门
www.onlinedown.net/soft/18202.htm
12. 小雨--网络考试、监控及出题系统 6.7 Server版
小雨——网络考试系统采用国际流行经典组合VB6.0+SQLServer2000工具开发,全面支持互
www.onlinedown.net/soft/34514.htm
13. 流程管理信息系统FlowMIS 4.0
是一个基于SQLServer7/2000的工作流开发平台,基于这一产品可以开发办公自动化、业务
www.onlinedown.net/soft/15180.htm
14. 物流配送系统-牛奶业务模块 1.02
本程序属于绿色程序,没有附加的DLL文件,但因使用SQLServer2000为后台数据库,所以必
www.onlinedown.net/soft/16274.htm
15. 迅宏液化气站管理系统SQL版 4.21
迅宏液化气站管理系统SQL版4.20,是针对SQLServer2000中文版开发的液化气站专用管理软
www.onlinedown.net/soft/1686.htm
16. SQL decrypt 2004 1.0
SQLserver2000数据库加密脚本解密工具,便于你从加密的脚本中还原原始脚本,以分析程
www.onlinedown.net/soft/24799.htm
17. 上海A股SQL报盘数据库工具 1.3
上海A股SQL报盘数据库工具系统要求:WINNT4/WIN2000/WIN98+SQLSERVER6.5以上版本的客
www.onlinedown.net/soft/29977.htm
18. 世纪商龙商业管理系统 8.1
1.采用SQLserver2000数据库,系统稳定可靠2.会员积分、储值卡管理、捆绑销售、时段打
www.onlinedown.net/soft/5192.htm
19. 易致短信防伪系统 2.0
系统采用sqlserver2000数据库,随机生成产品编码,所生成编码绝对不规律,安全性强,支
www.onlinedown.net/soft/26155.htm
20. mxc 1.0
可在WIN2000下单机或局域网上自动同时安装多个SQLSERVER2000数据库并自动与SQLSERVER2
www.onlinedown.net/soft/24823.htm
21. 锦航轿运车物流管理系统 1.0
使用软件之前,请先安装SQLSever2000,如果没有SQLServer2000,请下载SQLServer2000桌面
www.onlinedown.net/soft/42459.htm
22. 晨明电器销售标准网络版 4.0
安装说明:>本软件需要sqlserver2000数据库支持,请先安装sqlserver2000数据库,然
www.onlinedown.net/soft/36023.htm
23. 商易CRM 普通版 3.06
B/S架构,只需安装服务器端,客户端无需安装。安装前必须先安装IIS、SQLserver2000和I
www.onlinedown.net/soft/34722.htm
24. 博狐桑那管理系统 1.1
博狐桑拿管理系统是一套专业、实用的的行业管理软件,系统使用微软sqlserver2000大型
www.onlinedown.net/soft/38974.htm
25. 逸飞餐饮管理系统 1.0
系统需要win2000以上操作系统。数据库为SQLServer2000,混合验证方式。对于局域应用,
www.onlinedown.net/soft/37190.htm
26. DevilDart飞镖记分软件 1.0.2.2
本软件是绿色免安装软件,由于是基于SQLserver数据库的应用,所以必须先安装MSDE2000
www.onlinedown.net/soft/45666.htm
27. JSP简单留言本(SQLserver2000版)
down.chinaz.com/S/7114.asp
28. php与SQLServer2000架构WindowsWeb数据库实务
www.syku.net/down/soft/5511.htm
29. SQLServer2000菜鸟进阶教程
down.htcnc.net/Software/Catalog29/1379.html
30. PHP与SQLServer2000架构WindowsWeb数据库实务
www.600it.com/soft/6254.htm
31. SQLServer2000 Decryption V1.0
对SQLServer中加密的procere 和 view解密
download.enet.com.cn/html/030212005063001.html
http://www.soft8.net/soft8.php?page=2&word=SQLSERVER+2000&site=all&by=js&num=31
‘肆’ 求破解sql200加密存储过程的具体方法
破解SQL SERVER 加密存储过程,函数,触发器,视图
create PROCEDURE sp_decrypt(@objectName varchar(50))
AS
begin
set nocount on
--破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器
begin tran
declare @objectname1 varchar(100),@orgvarbin varbinary(8000)
declare @sql1 nvarchar(4000),@sql2 varchar(8000),@sql3 nvarchar(4000),@sql4 nvarchar(4000)
DECLARE @OrigSpText1 nvarchar(4000), @OrigSpText2 nvarchar(4000) , @OrigSpText3 nvarchar(4000), @resultsp nvarchar(4000)
declare @i int,@status int,@type varchar(10),@parentid int
declare @colid int,@n int,@q int,@j int,@k int,@encrypted int,@number int
select @type=xtype,@parentid=parent_obj from sysobjects where id=object_id(@ObjectName)
create table #temp(number int,colid int,ctext varbinary(8000),encrypted int,status int)
insert #temp SELECT number,colid,ctext,encrypted,status FROM syscomments WHERE id = object_id(@objectName)
select @number=max(number) from #temp
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
if @type=\'P\'
set @sql1=(case when @number>1 then \'ALTER PROCEDURE \'+ @objectName +\';\'+rtrim(@k)+\' WITH ENCRYPTION AS \'
else \'ALTER PROCEDURE \'+ @objectName+\' WITH ENCRYPTION AS \'
end)
if @type=\'TR\'
set @sql1=\'ALTER TRIGGER \'+@objectname+\' ON \'+OBJECT_NAME(@parentid)+\' WITH ENCRYPTION FOR INSERT AS PRINT 1 \'
if @type=\'FN\' or @type=\'TF\' or @type=\'IF\'
set @sql1=(case @type when \'TF\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end \'
when \'FN\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns char(1) with encryption as begin return @a end\'
when \'IF\' then
\'ALTER FUNCTION \'+ @objectName+\'(@a char(1)) returns table with encryption as return select @a as a\'
end)
if @type=\'V\'
set @sql1=\'ALTER VIEW \'+@objectname+\' WITH ENCRYPTION AS SELECT 1 as f\'
set @q=len(@sql1)
set @sql1=@sql1+REPLICATE(\'-\',4000-@q)
select @sql2=REPLICATE(\'-\',8000)
set @sql3=\'exec(@sql1\'
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=CEILING(1.0*(@colid-1)/2) and len(@sQL3)<=3996
begin
set @sql3=@sql3+\'+@\'
set @n=@n+1
end
set @sql3=@sql3+\')\'
exec sp_executesql @sql3,N\'@Sql1 nvarchar(4000),@ varchar(8000)\',@sql1=@sql1,@=@sql2
end
set @k=@k+1
end
set @k=0
while @k<=@number
begin
if exists(select 1 from syscomments where id=object_id(@objectname) and number=@k)
begin
select @colid=max(colid) from #temp where number=@k
set @n=1
while @n<=@colid
begin
select @OrigSpText1=ctext,@encrypted=encrypted,@status=status FROM #temp WHERE colid=@n and number=@k
SET @OrigSpText3=(SELECT ctext FROM syscomments WHERE id=object_id(@objectName) and colid=@n and number=@k)
if @n=1
begin
if @type=\'P\'
SET @OrigSpText2=(case when @number>1 then \'CREATE PROCEDURE \'+ @objectName +\';\'+rtrim(@k)+\' WITH ENCRYPTION AS \'
else \'CREATE PROCEDURE \'+ @objectName +\' WITH ENCRYPTION AS \'
end)
if @type=\'FN\' or @type=\'TF\' or @type=\'IF\'--刚才有错改一下
SET @OrigSpText2=(case @type when \'TF\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns @b table(a varchar(10)) with encryption as begin insert @b select @a return end \'
when \'FN\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns char(1) with encryption as begin return @a end\'
when \'IF\' then
\'CREATE FUNCTION \'+ @objectName+\'(@a char(1)) returns table with encryption as return select @a as a\'
end)
if @type=\'TR\'
set @OrigSpText2=\'CREATE TRIGGER \'+@objectname+\' ON \'+OBJECT_NAME(@parentid)+\' WITH ENCRYPTION FOR INSERT AS PRINT 1 \'
if @type=\'V\'
set @OrigSpText2=\'CREATE VIEW \'+@objectname+\' WITH ENCRYPTION AS SELECT 1 as f\'
set @q=4000-len(@OrigSpText2)
set @OrigSpText2=@OrigSpText2+REPLICATE(\'-\',@q)
end
else
begin
SET @OrigSpText2=REPLICATE(\'-\', 4000)
end
SET @i=1
SET @resultsp = replicate(N\'A\', (datalength(@OrigSpText1) / 2))
WHILE @i<=datalength(@OrigSpText1)/2
BEGIN
SET @resultsp = stuff(@resultsp, @i, 1, NCHAR(UNICODE(substring(@OrigSpText1, @i, 1)) ^
(UNICODE(substring(@OrigSpText2, @i, 1)) ^
UNICODE(substring(@OrigSpText3, @i, 1)))))
SET @i=@i+1
END
set @orgvarbin=cast(@OrigSpText1 as varbinary(8000))
set @resultsp=(case when @encrypted=1
then @resultsp
else convert(nvarchar(4000),case when @status&2=2 then uncompress(@orgvarbin) else @orgvarbin end)
end)
print @resultsp
set @n=@n+1
end
end
set @k=@k+1
end
drop table #temp
rollback tran
end
‘伍’ sql 2008 存储过程 怎么解密
SQLServer2005里使用with encryption选项创建的存储过程仍然和sqlserver2000里一样,都是使用XOR进行了的加密。和2000不一样的是,在2005的系统表syscomments里已经查不到加密过的密文了。要查密文必须使用DAC(专用管理员连接)连接到数据库后,在系统表 sys.sysobjvalues查询,该表的列imageval存储了相应的密文
‘陆’ SQLSERVER存储过程加密后,是不是任意版本都可以很容易解密
是的到目前为止,SQL Server所有版本的存储过程的加密的机理都是一样的,都可以被非常容易的破解,前提是,有读取存储过程的代码的权。
要防止用户得到SQL Server存储过程的真实代码,最简单的做法就是只给执行权,不给查看权。
至于安装在别人服务器上的SQL Server数据库中的存储过程,想不让别人看,那基本上是没门儿的。
‘柒’ sqlserver2008r2密钥能不能共用
sqlserver2008r2密钥不能共用。sqlserver2008r2密钥不能共用的原因有以下:
1、许可证限制:SQLServer许可证限制在一个特定的服务器或设备上使用。试图在多个服务器或设备上使用相同的密钥,这违反了许可证规定。
2、集群环境:SQLServer2008R2支持集群环境,但需要使用特定的密钥配置。由于每个服务器节点都需要具有唯一的密钥标识,因此不能共用密钥。
3、安全性问题:共用密钥引发安全风险。多个人或组织共享相同的密钥,一个人的意外或恶意操作会对其他人的数据或系统造成损害。
4、技术支持:多个用户使用相同的密钥,技术支持变得困难。由于无法确定哪个用户产生的问题,提供准确的技术支持变得复杂。密钥是在加密和解密过程中使用的一组特定的数据。它是一个秘密的参数,用于执行加密算法以加密原始数据,或执行解密算法以还原加密数据为其原始形式。