All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
delphi下拉列表组件(TComboBox)使用实例
delphi中类引用的使用实例
2003服务器查IIS挂马全过程_[Asp.Net教程]
javascript:世界上误解最深的语言_JavaScript技术_编程技术
扩展Label控件(1),-,实现回发(Postback)功能_[Asp.Net教程]
PHP教程:简单学习动态网页制作PHP中的Sessions_[PHP教程]
PHP字符串匹配函数strstr_php资料_编程技术
新手通过实例学习动态网页PHP的语法_php资料_编程技术
配置 SQL Server 2005 远程调试存储过程_[SQL Server教程]
MS,SQL数据库的连接处理解决方案_[SQL,Server教程]
Reading number is top 10 pictures
The woman fight much more than men
yy365网站上的美女2
A beautiful girl to bud2
From China fortress sora aoi3
Li Zongrui hunting video screenshots2
The service WaLiangGe Chinese aircraft carrier1
9.3阅兵全景图1-抗战老兵和英雄连队梯队
我国房地产真相
Rendez-vous Sleep with actress, three days to earn 600000
Ashlynn Brooke show proud chest measurement3
Download software ranking
小黑猫大战两米大花蛇
终极变速大师Speeder3.26
Kung.Fu.Panda.2
Tram sex maniac 2 (H) rar bag17
apache-tomcat-6.0.33
Photoshop 8.0图象编辑软件
仙剑奇侠传98版歌曲
Boxer Classic video2
Tram sex maniac 2 (H) rar bag15
Unix video tutorial3
归海一刀 published in(发表于) 2014/2/1 0:14:26 Edit(编辑)
SqlServer存储过程函数加解密

SqlServer存储过程函数加解密

SqlServer存储过程/函数加/解密_[SQL Server教程]

存储过程、存储函数的加密:WITH ENCRYPTION




CREATE procedure dbo.sp_XML_main


@table_name nvarchar(260)='',


@dirname nvarchar(20)=''


WITH ENCRYPTION


as


begin


....................


end


go


存储过程、存储函数的解密


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_decrypt]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)


drop procedure [dbo].[sp_decrypt]


GO


/*--破解函数,过程,触发器,视图.仅限于SQLSERVER2000


--作者:J9988-- All rights reserved*/


/*--调用示例


--解密指定存储过程


exec sp_decrypt 'AppSP_test'


--对所有的存储过程解密


declare tb cursor for


select name from sysobjects where xtype='P' and status>0 and name<>'sp_decrypt'



declare @name sysname


open tb


fetch next from tb into @name


while @@fetch_status=0


begin


print '/*-------存储过程 ['+@name+'] -----------*/'


exec sp_decrypt @name


fetch next from tb into @name


end


close tb


deallocate tb


--*/



if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SP_DECRYPT]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)


drop procedure [dbo].[SP_DECRYPT]


GO


CREATE PROCEDURE sp_decrypt(@objectName varchar(50))


AS


begin


set nocount on


--破解字节不受限制,适用于SQLSERVER2000存储过程,函数,视图,触发器


--修正上一版视图触发器不能正确解密错误


--发现有错,请E_MAIL:CSDNj9988@tom.com
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'


begin


declare @parent_obj varchar(255),@tr_parent_xtype varchar(10)


select @parent_obj=parent_obj from sysobjects where id=object_id(@objectName)


select @tr_parent_xtype=xtype from sysobjects where id=@parent_obj


if @tr_parent_xtype='V'


begin


set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTERD OF INSERT AS PRINT 1 '


end


else


begin


set @sql1='ALTER TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '


end


end


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'


begin



if @tr_parent_xtype='V'


begin


set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION INSTEAD OF INSERT AS PRINT 1 '


end


else


begin


set @OrigSpText2='CREATE TRIGGER '+@objectname+' ON '+OBJECT_NAME(@parentid)+' WITH ENCRYPTION FOR INSERT AS PRINT 1 '


end



end



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







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.