ASP程序加密解密方法全面解析
![](http://www.even8.com/style/images/logo.jpg)
目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法……
如今,用ASP技术构建的网站随处可见。由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题,网上求解这类问题的帖子非常多,下面我们就来谈谈ASP程序的加密方法。 一、如何加密ASP程序? 目前对ASP程序的加密方法主要有三种:脚本编码器(SRCENC.EXE)加密、组件加密、自编程序加密,下面我们就来展开介绍这三种加密方法。 1、使用微软的MS Script Encode进行加密 微软提供了脚本编码器MS Script Encode(下载地址http://www.itgene.cn/itgene/download/download.aspID=232),可以对ASP程序进行加密。这是一个简单的命令行工具,其执行文件是SRCENC.EXE,需要在DOS下运行。它只加密页面中嵌入的脚本代码,把网页中之间的ASP代码转换成不可读的乱码,其他部分则保持原样不变。加密后的程序,必须使用Internet Explorer 5.0以上版本才能正常浏览。 用SRCENC加密之后,文件中被加密过的部分将变成只读类型,假如你修改了加密部分(哪怕只改动一个字),就会导致整个文件不能使用。对于 VBScript,加密后在源文件的第一行会显示:<SCRIPT LANGUAGE="VBScript.Encode">;而JScript(或 JavaScript)则会显示:<SCRIPT LANGUAGE="JScript.Encode"> (1)加密方法 单击“开始”/程序/附件/命令提示符,在MS-DOS 命令行中输入以下命令,即可对某个asp文件加密: SRCENC [switches] <要加密asp文件名> <加密后的文件名> 其中[switches]项目可以选以下5个参数 [switches] 含义 举例 /s 可选。命令中带了该参数,加密过程中屏幕上就不会有输出。 screnc /s lacl.sct ulacl.sct 对当前目录中的脚本小程序lacl.sct加密,加密过程中屏幕不显示任何信息 /f 可选。指定输出文件是否覆盖同名输入文件。忽略,将不执行覆盖。 screnc /f lacl.asp 对文件 lacl.asp加密,并用编码后的同名文件覆盖原文件 /xl 可选。是否在.asp文件的顶部添加@Language指令。忽略,将添加。 /l defLanguage 可选。指定Script Encoder加密中选择的缺省脚本语言。文件中不包含这种脚本语言特性的脚本将被Script Encoder 忽略。 对于HTML文件,JScript为内置缺省脚本语言;对于ASP文件,VBScript为缺省脚本语言;对于扩展名为.vbs或.js的文件,Script Encoder也有自适应能力。 screnc /l vbscript lacl.htm ulacl.htm 对文件 lacl.htm加密,并生成输出文件 ulacl.htm,确保没有指定语言属性的脚本块使用 VBScript /e defExtension 可选。指定待加密文件的文件扩展名。缺省状态下,Script Encoder能识别asa,asp,cdx,htm,html,js,sct和vbs文件。 screnc /e asp 11\*.* f:\labxw-jm 对11目录中的所有.ASP 文件进行加密,并把编码后的输出文件放在f:\labxw-jm目录中 (2)操作举例 例如要加密当前目录中的lacl.asp文件,生成加密文件ulacl.asp,则在DOS下输入命令: screnc lacl.asp ulacl.asp 对当前目录中的所有 .ASP 文件进行加密,并把编码后的输出文件放在f:\labxw中,则使用命令: screnc *.asp f:\labxw 2、使用组件加密asp 以上被screnc加密过的程序,是可以解密的(解密方法下文有介绍),如果你想彻底保护自己的asp代码,可以通过开发activex dll组件的方法进行保护。 Dll文件是被编译过的机器代码,如果没有源项目文件,是不可能被反编译的,所以组件加密这种方法最安全,也不可能被破解。下面我们来举例说明操作过程,例如你要保护以下asp代码: 以下是引用片段: 可以把它们改写成VB组件,然后在ASP文件中调用组件即可。操作步骤如下: (1)新建一个vb6的activex dll项目 在属性窗口中,命名你的库模块和项目文件(例如项目名lacl,模块名disp),以后在asp文件中,调用的对象名将为lacl_disp 选择vb6中的项目菜单中的references ,选中microsoft activex data objects 2.0 library (2)编写VB组件 接下来把<欲保护的asp代码>改写成VB组件,代码如下: 以下是引用片段: 写好以上VB代码后,保存项目并开始编译。 (3)生成安装文件 打开visual studio 6中附带的package deployment wizard程序,选择刚才建立的activex项目文件lacl;选择package,选择要打包的脚本或使用默认脚本,选择标准安装,为生成的安装文件选择一个存放目录,选择single cab. 其他均默认;然后单击下一步,安装文件就自动生成了! (4)在IIS服务器上安装组件 在IIS服务器上运行这个安装文件,把组件安装到服务器上。 (5)在网页中调用组件 以后在ASP文件中,通过调用该组件完成原来的功能。在网页中调用你制作的组件,方法如下: 以下是引用片段: 你看,现在Asp文件中的内容只是组件的调用(与以前完全不同),别人即使得到该文件,也无法编辑修改源代码,因为代码都被封装在VB组件中了,对于组件中的代码,外人是无法看到、也不能反编译的! 3、自己编写加密程序 组件加密方法虽然不可破解,但是要求你熟悉VB编程,需要把ASP代码改写成VB组件,工作量很大,所以建议大家自己编程来保护asp代码,其基本思路是:写一个加密函数base64Encode和解密函数base64Decode,先用加密函数处理<要保护的asp代码>,得到对应的密文hu;然后再用execute(base64Decode(hu))替换<欲保护的asp代码>。 例如我们要保护上面那段asp代码,可以这样操作: (1)用WORD处理<要保护的ASP代码> 将<要保护的ASP代码>拷到WORD中;在WORD中,把代码里的段落标记(回车换行)全部替换成“水”这个汉字,方法是:点击“编辑”/替换,光标移到“查找内容”栏,点“高级”/特殊字符,选择“段落标记”;光标移到“替换为”栏,输入“水”,最后点“全部替换”。同法,把代码中的单引号也全部替换成“加”这个汉字。 (2)编写、运行加密程序 在FrontPage中编写加密程序,该程序中有初始化函数initCodecs、加密函数base64Encode(代码如下),把WORD处理后的代码,copy粘贴在inp = ""这句中,最后以test1.asp名存盘;在IE中输入http://127.0.0.1/test1.asp本地运行该文件;屏幕上会显示一大段乱码(例如c2V0IHJzPXNlcnZlci5jcmVhd...),这就是《要保护的asp代码》对应的密文! 以下是引用片段: (3)重新改写要保护的asp文件 改写原来的asp文件,在文件中增加UnEncode 和base64Decode函数,全部代码如下: 以下是引用片段: 将以上代码以test2.asp名存盘。 (4)用SRCENC加密test2.asp 用SRCENC加密test2.asp,然后把它发布到服务器上,这样别人即使得到该文件、破解了SRCENC加密,也无法看到原代码,因为原代码在test2.asp中是密文(Hu=”c2V0IHJzPXNlcnZlc...),所以ASP代码就被保护起来了! 二、加密过的asp程序如何解密? 如何对加密过的asp程序解密呢?首先我们要告诉大家,用组件法加密的asp程序是无法解密的,而screnc加密过的程序则可以解密,方法是:使用解密软件(ZWDECODE.EXE)。 ZWDECODE.EXE(下载地址http://www.mydown.com/softdown/45/45183.html)可以对MS Script Encode加密的ASP文件进行解密,还原出源代码。 (1)解密方法 单击“开始”/程序/附件/命令提示符,在MS-DOS 命令行中输入以下命令,即可恢复原代码: ZWDECODE <已加密asp文件名> 其中<已加密asp文件名>必需输入,该文件名可带目录路径;也必需输入,这是要生成的输出文件名,也可以带路径信息。 (2)举例 例如F:\22\lacl.asp曾被screnc加密处理过,现在要恢复其中的源代码,你可以在MS-DOS中输入以下命令: ZWDECODE F:\22\lacl.asp d:\ulacl.asp 执行完毕,在D盘上就会生成一个ulacl.asp文件,打开该文件,你就能看到源代码了! |
ASP程序加密解密方法全面解析相关推荐
- 网站安全之ASP程序加密解密方法全面解析
如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题 ...
- 小程序加密解密完成版
(仔细看,别慌,特别简单) 小程序项目中有个叫 utils 文件目录. 在utils中创建一个aes.js文件,然后从我的上一篇文章复制代码AES.JS并把内容复制进去即可. 在utils文件里面的 ...
- python实现加密字符串_Python实现对字符串的加密解密方法示例
本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...
- ios常见加密解密方法
在其他平台中经常会计算MD5值,在ios平台中也提供了该方法,首先需要导入头文件 [cpp] view plaincopy #import <CommonCrypto/CommonDigest. ...
- 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed
微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed 参考文章: (1)微信小程序加密解密 C# 以及 ...
- python des解密_python实现DES加密解密方法实例详解
本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优 ...
- python如何加密字符串_Python实现对字符串的加密解密方法示例
本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...
- Java实现一个简单的加密解密方法
Crypto是Java语言写的一个简单的加密解密方法. 使用方法: 加密方法 String cipherte=Enande.encrypt(content, pass): 解密方法 Enande.de ...
- C#常用加密解密方法(MD5加密解密)
在日常开发过程中,总会遇到需要加密解密的需求,这里我整理了C#常用的加密解密方法分享给大家. 先看看加密的基本概念: "加密",是一种限制对网络上传输数据的访问权的技术.原始数据( ...
- Linux-编写SHELL 加密解密方法
Linux-编写SHELL 加密解密方法 我们在编写SHELL脚本时,有时候需要填写密码到脚本里,比如mysql备份脚本,这时我们就需要一个脚本加密解密的方法了,我使用GO语音执行Linux命令加密解 ...
最新文章
- iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用
- openapi开放平台架构_适用于所有人的MicroProfile OpenAPI
- Qt Linguist翻译过程概述
- 链表数据结构图解 和 代码实现
- 程序员职场:3 大原则让你的编程之路越走越顺,新手来了解一下
- Apache 配置SSL网站
- vscode主题 webstorm_vscode/webstorm快捷键
- unity暂停和继续按钮
- python计算方差的置信区间_python计算置信区间
- 基于CUBEMX和STM32C8T6的同轴麦轮小车制作(二)——HAL库接受jy61p陀螺仪数据,并解决数据溢出卡死问题。
- 08|电商项目异地双活笔记
- 程序员找工作的个人经验教训以及注意事项
- 各种DBCO偶联试剂成为点击化学反应的操控新策略
- 十年互联网项目实战经验分享:项目经理成长之路的三个层次
- 读书笔记 - 《枪炮、病菌与钢铁》
- python生成等值线_在python中生成X,Y数据的等值线图
- 四、转换成BCNF的保持无损连接的分解
- firewall ip白名单设置
- cad面积累计lisp怎么用_求一个cad的lisp:一次计算多个封闭线框的面积,并显示每个面积和总面积...
- android消息推送标准,标准统一 安卓告别垃圾消息推送