当前位置: 首页 > 编程日记 > 正文

Sql存储过程加密和解密

可用于加密SQL存储过程或者触发器(这是SQL Server本身提供的,也就是说这是微软的加密算法) http://www.mscto.com 使用 WITH ENCRYPTION 选项 WITH ENCRYPTION 子句对用户隐藏存储过程的文本。下例创建加密过程,使用 sp_helptext 系统存储过程获取关于加密过程的信息,然后尝试直接从 syscomments 表中获取关于该过程的信息。 IF EXISTS (Select name FROM sysobjects Where name = 'encrypt_this' AND type = 'P') Drop PROCEDURE encrypt_this GO USE pubs GO Create PROCEDURE encrypt_this WITH ENCRYPTION AS Select * FROM authors GO 软件开发网 EXEC sp_helptext encrypt_this http://www.mscto.com 下面是结果集: The object's comments have been encrypted. 接下来,选择加密存储过程内容的标识号和文本。 Select c.id, c.text FROM syscomments c INNER JOIN sysobjects o ON c.id = o.id Where o.name = 'encrypt_this' 下面是结果集: 说明 text 列的输出显示在单独一行中。执行时,该信息将与 id 列信息出现在同一行中。 Id text ---------- ------------------------------------------------------------ 1413580074 ?????????????????????????????????e?????????????????????????????????????????????????????????????????????????? (1 row(s) affected) 备注: create proc name with encryption as begin --语句 end Create TRIGGER trigger_name ON { table | view } WITH ENCRYPTION FOR Update AS begin --语句 end Sql存储过程解密算法 破解微软的加密算法网上同样有很多的Sql存储过程的解密软件,但大都是收费的。下边是网上流传的Sql存储过程解密算法,虽非官方,但绝对可行!同样可用于解密SQL存储过程或者触发器。 create PROCEDURE sp_decrypt(@objectname varchar(50)) AS begin set nocount on --CSDN:j9988 copyright:2004.07.15 --V3.2 --破解字节不受限制,适用于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) http://www.mscto.com 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 http://www.mscto.com 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 http://www.mscto.com 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)) http://www.mscto.com 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 go 软件开发网

转载于:https://www.cnblogs.com/czjone/archive/2010/12/01/1893651.html

相关文章:

C++向量类模板(支持实数向量与复数向量的各种运算)

2019独角兽企业重金招聘Python工程师标准>>> 头文件&#xff1a; /** Copyright (c) 2008-2011 Zhang Ming (M. Zhang), zmjerry163.com** This program is free software; you can redistribute it and/or modify it* under the terms of the GNU General Public L…

C# 篇基础知识11——泛型和集合

.NET提供了一级功能强大的集合类&#xff0c;实现了多种不同类型的集合&#xff0c;可以根据实际用途选择恰当的集合类型。 除了数组 Array 类定义在System 命名空间中外&#xff0c;其他的集合类都定义在System.Collections 命名空间中。为了方便、快捷地操纵集合元素&#xf…

React和vue的差异和相似地方

React 单向绑定&#xff08;加插件后&#xff0c;还是可以双向绑定&#xff09; Vue 双向绑定 组件化 1、 React&#xff0c;需要编写render函数&#xff0c; 2、 当React状态的状态state改变是render就会重新被调用&#xff0c; 重新计算全dom&#xff0c;然后对旧的dom就行对…

正则表达式相关方法

1 判断字符串中是否包含字母 /** * 使用正则表达式来判断字符串中是否包含字母 * param str 待检验的字符串 * return 返回是否包含 * true: 包含字母 ;false 不包含字母*/ public boolean judgeContainsStr(String str) { String regex".*[a-zA-Z].*"; Match…

Ajax Upload多文件上传插件翻译及中文演示

http://www.zhangxinxu.com/wordpress/?p342转载于:https://www.cnblogs.com/qiantuwuliang/archive/2010/03/19/1689800.html

[每日一讲] Python系列:Python概述

Python 序章 概述 Python 是弱类型动态解释型的面向对象高级语言&#xff0c;其具备面向对象的三大特点&#xff1a;封装、继承、多态。Python 代码运行时&#xff0c;其有一个编译过程&#xff0c;通过编译器生成 .pyc 字节码 文件&#xff08;为二进制文件&#xff09;&#…

微信公众号开发 微信消息回复开发 文本消息 图片消息开发

开发语言&#xff1a;java 实现功能&#xff1a;发送文字回复文字&#xff0c;发送图片回复图片、token验证、获取access_token等相关功能。 如图&#xff1a; 微信后台接口配置 &#xff0c;此为测试账号&#xff0c;正式设置也是一样的 项目地址&#xff1a;https://github…

[置顶]2010年东北大学ACM程序设计竞赛冬季校赛题解

8题只做出4题比较easy的题&#xff0c;而且做得挺麻烦&#xff0c;看来还要多练练。 AC的题如下 NEUOJ 1112 I Love Apple DescriptionSo many people love apple and there is a problem about apple.An Apple Word is a word that consists of only the letters A, P, L, an…

生成唯一序列号

写一个存储过程来实现&#xff1a; 转载于:https://www.cnblogs.com/hwgok/p/8136750.html

如何改变一个地图的Zoom单位

mapControl1.Map.Zoom new MapInfo.Geometry.Distance(mapControl1.Map.Zoom.value,MapInfo.Geometry.DistanceUnit.Kilometer);也可以分开写成如下格式&#xff1a;MapInfo.Geometry.Distance d new MapInfo.Geometry.Distance(1000, DistanceUnit.Kilometer);mapControl1.M…

canvas上的像素操作(图像复制,细调)

canvas上的像素操作(图像复制&#xff0c;细调) 总结 1、操作对象&#xff1a;ImageData 对象&#xff0c;其实是canvas的像素点集合 2、主要操作&#xff1a; var objctx.getImageData(0,0,100,100); ctx.putImageData(obj,110,0) 3、操作图片要放在站点才能正常操作&#xf…

sql查询返回xml数据之应用【转载】

sql查询返回xml数据之应用【转载】 今天查看邮件&#xff0c;看到一标题Using the FOR XML Clause to Return Query Results as XML&#xff0c;点进去看了看&#xff0c;以前也是知道sql server 查询可以返回xml格式&#xff0c;但具体一到应用中比较少&#xff0c;读过文章后…

solr 实现对经纬度的查询

1、solr版本 solr7 2、solr 经纬度查询的方式 使用LatLonType(用于平面坐标&#xff0c;而不是大地坐标&#xff09;SpatialRecursivePrefixTreeFieldType&#xff08;缩写为RPT&#xff09;BBoxField&#xff08;用于边界索引查询&#xff09;2.1 使用 LatLonPointSpatialF…

win7关于IIS发布网站时候数据库的问题,xp也一样

Win7装iis极其简单. 添加ASP.NET网站时应该选择添加"添加应用程序" 如果要连接sql server会报错,说是 "无法打开登录所请求的数据库 "MarketDept"。登录失败。用户 IIS APPPOOL\DefaultAppPool 登录失败。" 而系统中根本不会存在这个用户的. 解决…

Linq 等式运算符:SequenceEqual

检查元素的数量&#xff0c;每个元素的值及两个集合中元素的顺序是否相等,3个方面都相等则为true,否则为false IList<string> strList1 new List<string>(){"One", "Two", "Three", "Four", "Three"};IList<…

Swing 实现聊天系统 私发与群发

该系统使用的了socket、swing相关知识&#xff0c;实现了一个简单的群聊和私聊的系统。 1、程序界面功能展示 服务端swing界面展示 客户端服务展示 用户上线与发送消息客户端与服务端 私发消息 相关代码&#xff1a; package frame;import java.awt.BorderLayout; import ja…

Http和Socket连接区别(ZT)

1、TCP连接 要想明白Socket连接&#xff0c;先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议&#xff0c;可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口&#xff0c;使上层网络数据的传输建立在“无差别”的网络之上。 建立起一…

函数传参涉及到副本的创建与拷贝问题分析

遇到一个问题,是这样的: b [1, 2, 3]def aaa(b):b.append(4)def bbb(b):b 5aaa(b) print(b) # [1, 2, 3, 4]bbb(b) print(b) # [1, 2, 3, 4] 为什么呢,为什么通过函数传参,去修改参数,结果不一致呢? 原因是因为函数传参涉及到了参数副本的创建与拷贝,具体详解: 圆圈2为传参…

网页鼠标滚动实现图片缩放

<SCRIPT LANGUAGE"JavaScript"><!--//图片按比例缩放,可输入参数设定初始大小function resizeimg(ImgD,iwidth,iheight) {var p_w_picpathnew Image();p_w_picpath.srcImgD.src;if(p_w_picpath.width>0 && p_w_picpath.height>0){if(p_w_picp…

Dubbo 2.7.1 踩坑记

Dubbo 2.7 版本增加新特性&#xff0c;新系统开始使用 Dubbo 2.7.1 尝鲜新功能。使用过程中不慎踩到这个版本的 Bug。 系统架构 Spring Boot 2.14-Release Dubbo 2.7.1 现象 Dubbo 服务者启动成功&#xff0c;正常提供服务&#xff0c;消费者调用偶现失败的情况。错误如下图: …

经典算法研究系列:二、Dijkstra 算法初探

经典算法研究系列&#xff1a;二、Dijkstra 算法初探 July 二零一一年一月 本文主要参考&#xff1a;算法导论 第二版、维基百科。 写的不好之处&#xff0c;还望见谅。本经典算法研究系列文章&#xff0c;永久勘误&#xff0c;永久更新、永久维护。 July、二零一一年二月…

[Python Study Notes] Python的安装

Windows&#xff1a; 1.下载安装包&#xff1a; 转到Python官网https://www.python.org/downloads/ &#xff0c;下载最新版本的Python。 2.安装 安装到自定义的安装路径下。 3.配置环境变量 安装完成后--》【右键快捷方式】--》【复制python路径】&#xff0c;例如&#xff1…

swing 实现电影选座系统

该系统使用swing数据库 实现一个电影选座系统&#xff0c;相关系统的截图如下 使用三层架构实现电影购票系统&#xff0c;分用户和管理员&#xff0c;用户功能:展示电影&#xff0c;查找电影(模糊查询)&#xff0c;查看电影详情&#xff0c;查找场次&#xff0c;购买影票&…

JS动态加载JS

1、直接document.write <script language"javascript"> document.write("<script srctest.js><\/script>"); </script> 2、动态改变已有script的src属性 <script src id"s1"></script> <script lang…

PAT乙级1037

1037 在霍格沃茨找零钱 (20 分)如果你是哈利波特迷&#xff0c;你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的&#xff1a;“十七个银西可(Sickle)兑一个加隆(Galleon)&#xff0c;二十九个纳特(Knut)兑一个西可&#xff0c;很容易。”现在&#xff0c;给定哈利…

SAD和SATD的区别[摘]

Q:如果不用率失真最优化&#xff0c;为什么选择SATD&#xff0b;deltar&#xff08;mv&#xff0c;mode&#xff09;作为模式选择的依据&#xff1f;为什么运动估计中&#xff0c;整象素搜索用SAD&#xff0c;而亚象素用SATD&#xff1f;为什么帧内模式选择要用SATD&#xff1f…

照片换色 使用Python 或者 java

记录使用第三方api 给照片换底色&#xff0c;智能抠图。 1、第三方接口地址 https://www.remove.bg/api 2、抠图效果 3、使用python 实现的代码 在网页换色是不需要进行注册的&#xff0c;如果自己开发 需要注册账号 &#xff0c;得到调取api的口令 import requests impor…

WEB安全,SQL注入漏洞的加固代码汇总

该修复任务专用于处理以下安全性问题&#xff1a;[1] SQL 盲注[2] SQL 注入[3] XPath 注入[4] 发现数据库错误模式[5] 跨站点脚本编制[6] 使用 SQL 注入的认证旁路[7] HTTP 响应分割[8] 链接注入&#xff08;便于跨站请求伪造&#xff09;详细信息若干问题的补救方法在于对用户…

mui ios中form表单中点击输入框头部导航栏被推起及ios中form表单中同时存在日期选择及输入框时,日历选择页面错乱bug...

一、ios header导航栏被推起解决方法 1 设置弹出软键盘时自动改变webview的高度 plus.webview.currentWebview().setStyle({ softinputMode: "adjustResize" // 弹出软键盘时自动改变webview的高度 }); 2 增加样式 html, body { height: 100%; margin: 0px; …

qt试用1(Eclipse+cdt+Qt)

下载eclipse-cpp-helios-SR1-win32.zip下载Qt下载qt-eclipse-integration-win32-1.6.1.exe写一个启动eclipse的batch文件C:\program\eclipse-cpp-helios-SR1-win32\eclipse\cdt.batset path%path%;C:\Qt\2010.05\mingw\binset LIBRARY_PATHC:\Qt\2010.05\mingw\libset C_INCLUD…