System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种授权加密保护的方法,具体涉及一种针对java软件源码授权加密保护的方法。
技术介绍
1、随着计算机和移动端技术的快速发展,java编程语言广泛应用于各种软件开发领域。然而,这也带来了一系列的软件保护和授权的挑战。传统的软件保护方法如代码混淆、加密算法等已经无法满足对java软件更高级的保护需求。此外,为了保护商业软件的版权,开发者需要确保软件仅在经过授权的机器上运行。
2、传统的java软件保护方法通常集中在源代码层面,容易受到反编译和逆向工程的攻击。此外,现有的授权机制往往基于软件许可证和硬件锁等,无法提供足够的保护和灵活性。
3、因此,亟需一种针对java软件源码授权加密保护的方法,来解决传统方法所面临的软件保护和授权的局限性问题。
技术实现思路
1、本专利技术针对现有技术中的不足,提供一种针对java软件源码授权加密保护的方法,来解决传统方法无法满足现阶段软件保护和授权的需求的问题。
2、为实现上述目的,本专利技术采用以下技术方案:
3、一种针对java软件源码授权加密保护的方法,其特征在于,包括如下步骤:
4、步骤1,软件提供者将打包后的原始java软件包进行加密,得到加密后的java软件包与基础加密算子r;加密时,仅对方法体进行加密,加密使用aes-ctr算法;
5、步骤2,软件提供者向软件使用者提供授权码生成软件,软件使用者使用授权码生成软件在被授权的机器上生成授权码,发送给软件提
6、步骤3,软件提供者将上述所得的基础加密算子r和授权码封装入解密代理原始软件包,生成提供给软件使用者的解密代理,解密代理原始软件包包含软件解密算法的实现;
7、步骤4,软件使用者通过解密代理运行加密后的java软件包;解密代理获取当前机器的信息,与解密代理中包含已授权的机器信息的授权码的信息进行比对,校验当前机器环境为被授权机器后,将软件解密并执行。
8、为优化上述技术方案,采取的具体措施还包括:
9、进一步地,授权码包含的信息包括机器mac地址,硬盘序列号和cpu id信息。
10、进一步地,所述步骤1包括如下步骤:
11、生成一串32位真随机字符串作为基础加密算子r,解析原始java软件包,依次处理每个需要加密的class字节码文件;按照jvm字节码规范解析class字节码文件,修改class字节码文件的魔数标识,将第五字节修改为0x88,并标识该class字节码文件已被加密;
12、记录该class字节码文件代表的类的全限定名,生成32位md5校验码mi,将基础加密算子r与校验码mi进行异或运算,得到该class字节码文件的专属密码算子ri;继续解析class字节码文件内容,找到所有方法的"code"属性内容,该内容为方法体,使用专属密码算子ri作为加密密钥,用aes-ctr-256算法对方法体二进制内容进行加密,得到加密方法体,并替换原"code"属性内容;
13、所有需要加密的class字节码文件加密完成后,替换原始的明文class字节码文件,并重新打包为加密后的java软件包。
14、进一步地,所述步骤2包括如下步骤:
15、软件提供者将授权码生成软件发送至软件使用者,软件使用者在所有需要运行的机器上依次运行授权码生成软件,使得每个机器上均生成一组授权码;授权码生成软件用软件内置的非对称密钥信息对机器mac地址,硬盘序列号和cpu id信息进行封装加密,生成最终的授权码;软件使用者将每台机器上生成的授权码,统一发送给软件提供者。
16、进一步地,所述解密代理以c语言开发为一个遵循jvmti规范的java代理,在jvmti类加载回调中可实现软件的解密算法;解密代理原始软件包中解密需要的密钥替换为基础加密算子r,解密代理可运行的授权信息替换为授权码。
17、进一步地,所述步骤3包括如下步骤:
18、软件提供者将上述所得的基础加密算子r和授权码封装入解密代理原始软件包中,重新打包生成针对专用的解密代理;其中,基础加密算子r和授权码采用混淆方式封装至解密代理原始软件包的代码中。
19、进一步地,封装的所述基础加密算子r和授权码在代码中进行二次加密和物理分割存放。
20、进一步地,所述步骤4包括如下步骤:
21、软件提供者将加密后的java软件包和解密代理发送给软件使用者,软件使用者使用java命令,并使用"agentpath"参数指定解密代理为java软件运行的代理程序,开始java软件包的运行;
22、解密代理在加密后的java软件包被jvm加载前进行授权检测,解密代理获取当前机器的mac地址、硬盘序列号与cpu id信息,并与解密代理中内置的授权码信息进行比对,如果当前机器硬件信息在授权码信息中,则继续后续解密执行操作,否则的话,直接终止程序的运行;
23、授权校验通过后,解密代理按照加密时的逆向操作进行class字节码文件的解密;解密代理向jvm中注入class类文件加载回调,每当java类要被加载时,解密代理回调首先被运行;解密代理回调解密首先判断class字节码文件的魔数,判断第五个字节是否为加密时更改的魔数0x88,如果不是,则该类没有被加密,直接返回原始字节信息,交由jvm执行,否则将0x88替换为原始值0x00,继续解析字节码信息;
24、解密代理根据该class字节码文件代表的类的全限定名生成32位md5校验码mi,mi与解密代理中预置的基础解密算子r进行异或操作,生成该类的专属密码算子ri;解析代理继续解析,获取所有方法的"code"属性内容,该内容为加密的方法体字节码,使用专属密码算子ri,通过aes-ctr-256算法进行解密操作,得到完整的方法体解密字节码内容,返回至jvm加载器;jvm加载解密后的类文件,正常执行程序。
25、进一步地,一种计算机可读存储介质,存储有计算机程序,其特征在于:所述计算机程序使计算机执行如上述的一种针对java软件源码授权加密保护的方法。
26、进一步地,一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如上述的一种针对java软件源码授权加密保护的方法。
27、本专利技术的有益效果是:
28、灵活的加密范围:本专利技术只对方法体部分进行加密,而不是整个类文件,这为兼容spring框架提供了可能。spring框架在类加载前会对类文件进行解析并创建代理,因此只加密方法体不会影响spring框架的正常运行。这种灵活的加密范围保证了软件的稳定性和兼容性。
29、无代码入侵的授权方式:本专利技术提供了一种无代码入侵的授权方式,使得开发过程中无需修改代码。对于已经生成的代码包,开发者可以直接对其进行加密授权保护,不需要额外的开发步骤。这种授本文档来自技高网...
【技术保护点】
1.一种针对JAVA软件源码授权加密保护的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种针对JAVA软件源码授权加密保护的方法,其特征在于:授权码包含的信息包括机器MAC地址,硬盘序列号和CPU ID信息。
3.根据权利要求1所述的一种针对JAVA软件源码授权加密保护的方法,其特征在于,所述步骤1包括如下步骤:
4.根据权利要求1所述的一种针对JAVA软件源码授权加密保护的方法,其特征在于,所述步骤2包括如下步骤:
5.根据权利要求1所述的一种针对JAVA软件源码授权加密保护的方法,其特征在于:所述解密代理以C语言开发为一个遵循JVMTI规范的JAVA代理,在JVMTI类加载回调中可实现软件的解密算法;解密代理原始软件包中解密需要的密钥替换为基础加密算子R,解密代理可运行的授权信息替换为授权码。
6.根据权利要求1所述的一种针对JAVA软件源码授权加密保护的方法,其特征在于,所述步骤3包括如下步骤:
7.根据权利要求6所述的一种针对JAVA软件源码授权加密保护的方法,其特征在于:封装的所述基础
8.根据权利要求1所述的一种针对JAVA软件源码授权加密保护的方法,其特征在于,所述步骤4包括如下步骤:
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序使计算机执行如权利要求1-8任一项所述的一种针对JAVA软件源码授权加密保护的方法。
10.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如权利要求1-8任一项所述的一种针对JAVA软件源码授权加密保护的方法。
...【技术特征摘要】
1.一种针对java软件源码授权加密保护的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的一种针对java软件源码授权加密保护的方法,其特征在于:授权码包含的信息包括机器mac地址,硬盘序列号和cpu id信息。
3.根据权利要求1所述的一种针对java软件源码授权加密保护的方法,其特征在于,所述步骤1包括如下步骤:
4.根据权利要求1所述的一种针对java软件源码授权加密保护的方法,其特征在于,所述步骤2包括如下步骤:
5.根据权利要求1所述的一种针对java软件源码授权加密保护的方法,其特征在于:所述解密代理以c语言开发为一个遵循jvmti规范的java代理,在jvmti类加载回调中可实现软件的解密算法;解密代理原始软件包中解密需要的密钥替换为基础加密算子r,解密代理可运行的授权信息替换为授权码。
<...【专利技术属性】
技术研发人员:汪滨,李成钢,蒋思玉,赵志宏,康鹏,
申请(专利权)人:中电信数智科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。