存储过程解密(破解函数,过程,触发器,视图.仅限于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
|
相关推荐
android 9.0及其以上版本手机 操作数据库,再打开数据库db文件出现 “File opened that is not a database file file is encrypted or is not a database”android 9.0以下的版本 不会出现。 原因及解决方法。
在Black Hat 2016大会上,两名比利时的安全研究人员展示了他们今年的研究成果...HEIST的全称是Encrypted Information can be Stolen through TCP-Windows。大体意思就是通过TCP-Windows协议可以窃取到加密的明文信息。
SQL Server中加密是层级的,每一个上层为下提供保护。如图: 实例: /** SMK(Service Master Key)在SQL Server安装时生成,由Windows DPAPI(Data Protection API)提供保护 **/ /**创建数据库级别DMK(Database ...
SQL Prompt is crammed with features that take the routine out of working with SQL, and leave you to focus on the tricky bits. When you're writing code, SQL Prompt suggests appropriate keywords and ...
SQL Prompt is crammed with features that take the routine out of working with SQL, and leave you to focus on the tricky bits. When you're writing code, SQL Prompt suggests appropriate keywords and ...
SQL Prompt is crammed with features that take the routine out of working with SQL, and leave you to focus on the tricky bits. When you're writing code, SQL Prompt suggests appropriate keywords and ...
What is JBMail? JBMail is a compact and portable secure e-mail client. The software has ... JBMail is designed to be compact and secure, and the design goals may create inconveniences for some users.
Chapter 14, Data Exploration and Predictive Modeling with R in SQL Server, shows how you can use R for advanced data exploration and manipulation, and for statistical analysis and predictive modeling ...
DISQLite3 is a self-contained, embeddable, zero-configuration SQL database engine for ...Database files created with DISQLite3 can also be accessed by Linux and MacOS using the default SQLite libraries.
DISQLite3 5.18.0 – ReadMe DISQLite3 is a self-contained, embeddable, zero-...Database files created with DISQLite3 can also be accessed by Linux and MacOS using the default SQLite libraries.
This software have English and other language support, you can change default language in "設定 -> 更改語言". If you can help me to translate language, please visit ...
Introduction DISQLite3 implements a self-contained, embeddable, zero-configuration SQL ...Database files created with DISQLite3 can also be accessed by Linux and MacOS using the default SQLite libraries.
If you have encrypted a string with LockBox for Delphi 7 you'll probably want to be able to decrypt it with LockBox for Delphi 200+. But you might also want to encrypt Unicode strings. The only way ...
Securing SQL Server demonstrates how administrators and developers can both play their part in the protection of a SQL Server environment. This book provides a comprehensive technical guide to the ...
Furthermore, Trudy can even drop the packets that are being sent by Bob to Alice (and vise-versa), even if the packets from Bob to Alice are encrypted. Chapter 1 Problems Problem 1 There...
# PNG加密解密工具 此工具可以加密和解密PNG图片,保护您的隐私。 ## 加密 1. 选择要加密的PNG图片。 2. 输入密码并确认。 3. 点击“加密”按钮。 4. 保存加密后的PNG图片。 ## 解密 1. 选择要解密的PNG图片。 ...
S/MIME is based upon the widely used MIME standard [MIME] and describes a protocol for adding cryptographic security services through MIME encapsulation of digitally signed and encrypted objects....
It has a lot of built-in database functions for use in filters and can store tables in encrypted files. Table files and the component interfaces are identical on both platforms. Replacing BDE ...
Netscape 6.x/7.x (If the password is not encrypted with master password) Mozilla Thunderbird (If the password is not encrypted with master password) Group Mail Free Yahoo! Mail - If the password ...
Uncompressed, Compressed, and Archive file sizes can be up to 2^63-1 bytes in length. You can compress up to 2147483647 files into an archive. This is compatible with PKZip's Zip64 format. If a file...