[发明专利]一种Python程序模块的安全调用方法和装置在审
| 申请号: | 201510917414.5 | 申请日: | 2015-12-10 | 
| 公开(公告)号: | CN105574368A | 公开(公告)日: | 2016-05-11 | 
| 发明(设计)人: | 王若宇 | 申请(专利权)人: | 华青融天(北京)技术股份有限公司 | 
| 主分类号: | G06F21/12 | 分类号: | G06F21/12 | 
| 代理公司: | 北京超凡志成知识产权代理事务所(普通合伙) 11371 | 代理人: | 王术兰 | 
| 地址: | 100029 北京市朝阳区*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 python 程序 模块 安全 调用 方法 装置 | ||
技术领域
本发明涉及软件保护领域,具体而言,涉及一种Python程序模 块的安全调用方法和装置。
背景技术
Python是一门编程语言,具有开发速度快,第三方扩展完善, 代码编写量少等优点,由于Python的上述优点符合大数据分析平台 对开发效率要求,故Python成为众多大数据分析平台的开发指定语 言之一,尤其是某些大数据分析平台更是指定Python作为应用程序 的编程语言;一般情况下大数据分析平台的应用程序发布时会将 Python代码编译,来加快处理速度和隐藏源代码,用以保证Python 代码的安全性。
Python的上述优点,使得Python大大方便了软件的开发,但是, 由于Python的源代码只能编译,而不能加密,而使得Python代码 一直存在被盗用的问题;并且Python代码编译出的二进制文件可以 使用第三方软件反编译回Python源代码,从而使得Python代码存 在的被盗用的问题得不到有效的解决。
因此,本发明提供了一种Python程序模块的加密方法和装置, 用以解决Python代码存在的被盗用的问题。
发明内容
本发明的目的在于提供一种Python程序模块的安全调用方法 和装置,以提高Python代码的安全性,并且运行环境变化少、自动 化程度高以及可以跨平台使用。
第一方面,本发明实施例提供了一种Python程序模块的安全调 用方法,包括:
获取待加密的Python程序模块;其中,所述Python程序模块 运行在安装有Java运行环境和Jpype工具的运行环境中,所述Jpype 工具包括加载器;
将所述待加密的Python程序模块的Python代码转换为Jython 代码;
对所述Jython代码进行加密处理,生成加密文件对应的解密密 钥;
根据所述解密密钥对所述Jpype工具的加载器进行配置,利用 配置后的加载器调用所述加密文件,用以实现对Python程序模块的 安全调用。
结合第一方面,本发明实施例提供了第一方面的第一种可能的 实施方式,其中,所述获取待加密的Python程序模块包括:
获取配置文件中的函数列表和类的列表;
对所述函数列表和类的列表进行分析,确定待加密的类和待加 密函数以及非加密的类和非加密函数;
将所述待加密的类和待加密函数作为待加密的Python程序模 块。
结合第一方面的第一种可能的实施方式,本发明实施例提供了 第一方面的第二种可能的实施方式,其中,对所述Jython代码进行 加密处理,生成加密文件对应的解密密钥之前,还包括:
获取所述函数列表和类的列表中的所有调用关系对应的调用函 数;其中,所述调用关系涉及的对象包括:函数和函数以及类和类;
根据所述调用关系对应的调用函数,确定所述待加密的Python 程序模块中的待混淆函数信息;其中,所述待混淆函数信息包括所 述待混淆函数的以下信息中的一种或多种:名称和待混淆变量;
利用预设混淆函数信息对所述待混淆函数信息进行重命名;其 中,所述预设混淆函数信息包括以下信息中的一种或多种:混淆函 数名称和混淆变量名称;且所述混淆函数名称和所述混淆变量名称 均与Python关键字名称不同。
结合第一方面的第一种可能的实施方式,本发明实施例提供了 第一方面的第三种可能的实施方式,其中,所述对所述Jython代码 进行加密处理,生成加密文件对应的解密密钥包括:
根据用户发送的执行命令,将所述Jython代码封装成jar包函 数;
对所述jar包函数进行加密,生成所述jar包函数对应的解密密 钥。
结合第一方面的第三种可能的实施方式,本发明实施例提供了 第一方面的第四种可能的实施方式,其中,所述方法还包括:
扫描所有函数列表和类的列表,获取所述函数列表和类的列表 中的所有调用关系对应的所述调用函数;其中,所述调用关系涉及 的对象包括:函数和函数以及类和类;
在所述调用函数中查询非加密Python程序模块调用待加密的 Python程序的对内调用函数;其中,所述非加密Python程序模块包 括非加密的类和非加密函数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华青融天(北京)技术股份有限公司,未经华青融天(北京)技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510917414.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种私密模式的开启方法、装置及终端
 - 下一篇:一种检测基因组拷贝数变异的方法
 





