MS 数据库存储过程加密解密

存储过程加密解密在网上有很多,刚刚好最近需要用到,所以就查询了一下资料。记录一下

加密方法:执行如下存储过程

DECLARE @sp_name nvarchar(400)
DECLARE @sp_content nvarchar(2000)
DECLARE @asbegin int
declare @now datetime
select @now = getdate()
DECLARE sp_cursor CURSOR FOR
SELECT object_name(id)
FROM sysobjects
WHERE xtype = 'P'
AND type = 'P'
AND crdate < @now
AND OBJECTPROPERTY(id, 'IsMSShipped')=0

OPEN sp_cursor

FETCH NEXT FROM sp_cursor
INTO @sp_name

WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @sp_content = text FROM syscomments WHERE id = OBJECT_ID(@sp_name)
SELECT @asbegin = PATINDEX ( '%AS' + char(13) + '%', @sp_content)
SELECT @sp_content = SUBSTRING(@sp_content, 1, @asbegin - 1)
+ ' WITH ENCRYPTION AS'
+ SUBSTRING (@sp_content, @asbegin+2, LEN(@sp_content))
SELECT @sp_name = 'DROP PROCEDURE [' + @sp_name + ']'
EXEC sp_executesql @sp_name
EXEC sp_executesql @sp_content
FETCH NEXT FROM sp_cursor
INTO @sp_name
END

CLOSE sp_cursor
DEALLOCATE sp_cursor

 

执行完成之后,再去修改存储过程会提示如下结果:此时证明加密成功。

解密方法:利用 dbForge SQL Decryptor软件

 

登录成功之后,选中加密的数据库,然后操作如下图,就可以看到加密后的存储过程里的真实内容了。

至此,存储过程,加密解密都完成了。。

posted @ 2013-10-06 16:24  Mr.Ming  阅读(679)  评论(0编辑  收藏  举报