当前位置:大学毕业论文> mpa论文>材料浏览

代码相关在职毕业论文范文 与一种PHP程序源代码加密保护机制的设计类本科毕业论文范文

主题:代码论文写作 时间:2024-01-17

一种PHP程序源代码加密保护机制的设计,本文是代码相关在职毕业论文范文跟程序源代码和加密和保护相关本科毕业论文范文.

代码论文参考文献:

代码论文参考文献 环境保护类期刊环境保护杂志关于环境保护的论文生态环境保护论文3000

摘 要:PHP(Personal Hyper Text Preprocessor)作为一种十分流行的Web编程语言,在B/S架构应用程序开发中占据着重要地位.对PHP程序源代码进行加密保护,对于防止源代码泄露,保障程序开发者的版权和程序的安全性具有重要的现实意义.本文提出了一种使用自定义不公开密钥和AES对称加密算法对PHP源代码进行加密,在运行时使用PHP扩展动态链接库进行实时解密和运行的保护机制,从而实现对PHP源代码的加密保护,并通过实践进行了验证.

关键词:PHP ;源代码;加密

引言

近年来,PHP 作为一门功能强大、效率优秀、简单易学的Web 编程语言,在互联网领域得到了迅速推广和应用,大量交互式网站和B/S 架构的Web 应用程序都采用PHP 开发.然而,PHP 作为一种解释型的脚本编程语言,程序运行时由解释器直接读取源代码执行,没有类似C、JA 等编程语言的编译步骤,程序部署时必须将源代码直接提供给客户,既不利于保护程序开发者的版权,也对系统安全带来很大隐患.目前,PHP 提供的Zend Guard 和ionCube 开发的ionCubePHP Encode 等工具都可以实现对PHP 源代码的加密,但目前针对Zend Guard 的工具已经非常成熟,部分工具成功率超过95%.ionCube 的加密工具也存在缺乏对Windows 平台的有效支持等问题,难以满足复杂的市场需要.因此,探索一种低成本、高安全性的PHP 源代码加密/ 解密保护机制,具有很强的现实意义.

一、问题分析

PHP 源代码加密保护的本质,是在不影响PHP 程序正常运行的前提下,使用某种基于不公开密钥的可逆算法,对程序源代码中的核心、有价值代码进行重新编辑,使编辑后的代码无法识读和运行,必须在配置有解密工具和密钥的环境中才能正常运行的机制.加密解密机制的设计涉及到以下4个方面的问题.

1.1 加密对象分析.由于Web 程序的特点,一个PHP 开发的Web 软件系统,往往包含大量(可能成百上千)的PHP源代码文件,这其中涉及系统关键技术和核心功能的代码文件(如核心类库、函数库、初始化信息等)只占一少部分.因此,不论出于效率考虑还是实际需求,没有必要对所有PHP 代码文件进行加密,只需要加密核心代码文件即可.1.2 加密规则分析.加密算法必须能够对文本格式的PHP源代码(以下称源文件)进行混淆,使得加密后的源代码无法直接识读,不论用文本方式还是二进制流方式进行分析,都不能暴露源文件的代码特征.用户如果对加密后的代码进行任何修改,都会导致程序无法运行.加密时,应当包含文件的校验信息,如文件长度、版权所有者、有效期限等,便于进行版权保护.同时,由于加密后的代码需要解密、运行,因此加密算法必须可逆.

1.3 解密规则分析.加密后的源代码文件(以下称密文文件)并不能直接被PHP 解释器执行,需要在运行前先进行解密,然后送入PHP 解释器.出于代码安全考虑,解密过程中数据只能在内存中流动,不能在硬盘上产生临时或永久性文件.解密程序应当与PHP 解释器实现无缝对接,解密程序将密文文件解密后直接送给PHP 解释器在当前会话下运行.对于程序开发者和阅读者而言,解密过程是“透明”的.

1.4 性能分析.加密操作只在程序发布前进行一次,因此对性能没有特殊要求.在解密时,由于PHP 是解释型语言,理论上每次用户对PHP 程序文件的请求都会引起程序的重新执行(不考虑PHP 自身提供的效率优化机制),而每次执行都会使解密程序重新运行,在并发访问量较高的情况下,解密将额外增加大量的脚本执行时间,占用更多系统资源.因此,有必要对解密结果进行缓存处理,在当前应用程序资源池有效期内,解密结果可以保持缓存、重复使用.

二、设计思路

2.1 加密过程设计.加密程序的功能是将源文件处理为密文文件.其流程为:读取源文件,判断文件编码格式,根据编码格式将代码全文读入内存并按Unicode 方式展开;将保密有效期、版权信息等自定义信息按一定格式连接起来,作为头信息;将头信息和头信息长度作为附加头插入源代码首部,形成待加密字符串.待加密字符串结构如图1 所示.

考虑到密文必须复原,必须采用可逆的加密算法进行加密.同时,为了增强加密效果,应当使用有密钥的加密算法.综合比较,AES(Advanced Encryption Standard)高级加密标准是理想方案.为防止被加密的代码迁移到非授权设备使用,可以将指定的设备信息(如CPU 序列号、硬盘序列号等)进行格式化后作为加密密钥,或作为加密密钥的一部分.这样指定设备信息和格式化算法都由加密者自己定义,不对外公开,而且加密工具并不随源代码一起发布,不存在通过反编译加密工具获取加密算法的可能性,大大增加了难度.为使加密后的数据符合文本文件编码特征,再使用Base64 编码方式进行编码,形成最终密文.加密流程如图2 所示.

2.2 解密与缓存过程设计.解密程序是在客户环境中运行,为保证安全,不能将解密后的代码保存为磁盘文件,解密操作和代码执行必须同时进行,解密即运行,所有操作在内存中完成.因此,解密程序可以制作为PHP 动态链接库,在PHP 代码中可以直接调用和运行.解密和运行程序的操作流程为:在需要执行密文文件的PHP 程序中,通过调用PHP扩展函数指定要运行的密文文件;在函数实现部分,以文本方式读取密文文件,进行Base64 解码,根据用户自定义的方式取得与指定设备绑定的密钥,进行AES 解密;解密后按固定长度读取头信息和源代码信息;根据头信息判断程序是否处于有效期内,以及程序是否被篡改过;确认无误后直接在PHP 扩展函数中执行代码部分,然后函数返回到最初调用的PHP 程序,继续执行后续PHP 代码.

考虑到高并发访问情况下频繁的解密操作带来额外庞大系统开销,有必要对解密后的代码进行缓存处理.在PHP 扩展函数收到执行某个密文文件的请求后,首先判断该文件是否处于缓存列表中,如存在,则直接执行;如不存在,再执行上文所述解密步骤,解密后将源代码存入缓存列表.解密与缓存过程如图3 所示.

三、 结语

本文根据PHP 语言的特点,提出了一种使用基于不公开密钥的可以算法对PHP 源代码进行加密,使用PHP 扩展动态链接库对加密后的代码进行实时解密和运行的机制.经过在实际PHP 商业项目中测试,能够达到设计目的,对保护PHP软件开发者版权和程序安全性起到了很好作用.同时在测试过程中也发现,该机制还存在以下3 个方面的不足:一是高并发访问的情况下(1000 并发以上),解密程序的稳定性会出现波动;二是本机制目前只支持对纯PHP 代码进行加密,不能支持PHP+HTML 的混合代码;三是当被加密文件中有复杂的路径引用时,该机制还不能很好的支持.以上问题还需要继续研究加以完善.H

参考文献

[1] 刁慧婷. 计算机网络通信安全管理工作中数据加密技术的应用[J]. 通讯世界,2017,1.

[2] 江碧嫦. 资源共享的并行aeS 加密/ 解密算法及实现研究[J]. 无线互联科技,2016,12.

[3] 罗江华. 基于MD5 与Base64 的混合加密算法[J]. 计算机应用,2012,A01.

(作者单位:日照职业技术学院信息化办公室)

总而言之,本文是关于对不知道怎么写程序源代码和加密和保护论文范文课题研究的大学硕士、代码本科毕业论文代码论文开题报告范文和文献综述及职称论文的作为参考文献资料.

一种新型高压气源露点测试仪和设计
贝明君(东莞市虎门机械厂,东莞523899)摘要高压气体的露点测量是衡量气体是否合格的重要指标之一 本文介绍的高压气源露点测试仪采用新型微型制冷机对镜面降温,避免了传统高压气源露点测量依靠高压空气制冷.

变电二次继电保护中智能设计的应用分析
【摘要】 进入二十一世纪之后,我国的社会和经济都在飞速发展,电力系统作为社会的支柱产业,也在进行着飞速的发展,在电力系统飞速发展的时候,对变电站继电保护设备的要求也越来越高 智能站技术的出现则很好的解.

以互联网思维构建微信公众号的版权保护机制
文刘晶晶互联网已经成为当代经济社会发展中最重要的基础设施,渗透到人们生产生活的各个领域,引起了经济社会生活的重大变化,改变着人们的生产生活方式和思维方式 由于技术的进步,不断地催生出新的互联网形态和产.

论文大全