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、技術支持:多個用戶使用相同的密鑰,技術支持變得困難。由於無法確定哪個用戶產生的問題,提供准確的技術支持變得復雜。密鑰是在加密和解密過程中使用的一組特定的數據。它是一個秘密的參數,用於執行加密演算法以加密原始數據,或執行解密演算法以還原加密數據為其原始形式。