加密基于Python的风光预测算法文件的方法及装置制造方法及图纸

技术编号:24122335 阅读:19 留言:0更新日期:2020-05-13 03:28
本发明专利技术实施例提供一种加密基于Python的风光预测算法文件的方法及装置。其中,方法包括:将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行;将植入密码校验代码的风光预测算法文件编译为二进制动态库;其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。本发明专利技术实施例提供的加密基于Python的风光预测算法文件的方法及装置,通过将预先生成的密码校验代码植入风光预测算法文件中,对执行风光预测算法文件的设备进行校验,将植入密码校验代码的风光预测算法文件编译为二进制动态库,能防止风光预测算法文件被篡改、被逆向和被非法拷贝,能提高安全性。

【技术实现步骤摘要】
加密基于Python的风光预测算法文件的方法及装置
本专利技术涉及计算机
,更具体地,涉及一种加密基于Python的风光预测算法文件的方法及装置。
技术介绍
在风电/光伏功率预测领域,基于Python语言开发预测算法,生成风光预测算法文件越来越广泛。风光预测算法文件存储有基于Python语言的脚本,脚本用于实现风/光功率预测算法。由于Python语言具有易用性和脚本化执行等特点,不能通过传统手段有效的保护风光预测算法文件。由于Python脚本的明文可见性很容易造成代码泄露,甚至被恶意篡改而导致安全事故,带来巨大危害和经济损失。现有针对Python脚本进行的加密方法主要包括三种。第一种是代码混淆方法,在各种脚本语言中最常用的手段,主要方法是将代码中所使用的函数名、类名、变量名转换成无意义的长名,在逻辑中随机插入无效代码。通过这种方式降低代码可读性,但实际上代码明文还是暴露在外的,逆混淆只是时间问题,依然不能防止被拷贝、篡改。第二种是生成可执行文件方法,利用pyinstaller或py2exe工具将源码打包成二进制可执行文件来达到代码不可见的目的,但随着这两种工具的发布同时也出现了针对这两种工具的逆向工具,可以很轻松的对生成的二进制文件逆向工程获取源码。并且,打包后的二进制可执行文件在运行时会在系统缓存目录生成.pyc,通过对此文件的反编译也可以获取源码。第三种是定制Python解释器方法,通过修改和重新编译Python解释器,使其只能执行加密后的Python脚本文件。这种方法必须重新部署一个自定制的Python环境,但在很多时候电力系统生产安全规范中不允许修改服务器的操作系统环境,通知加密后的脚本还是以明文方式存在,虽然不可读但还是可以修改导致无法正常运行。综上,现有针对基于Python的风光预测算法文件进行加密的方法都存在安全性较差的不足。
技术实现思路
本专利技术实施例提供一种加密基于Python的风光预测算法文件的方法及装置,用以解决或者至少部分地解决现有技术存在的安全性较差的缺陷。第一方面,本专利技术实施例提供一种加密基于Python的风光预测算法文件的方法,包括:将预先生成的密码校验代码植入所述风光预测算法文件中,以使得所述密码校验代码在用于实现风光预测算法的代码之前执行;将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库;其中,所述密码校验代码,用于对执行所述风光预测算法文件的设备进行校验。优选地,所述将预先生成的密码校验代码植入所述风光预测算法文件中之前,还包括:根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息。优选地,所述根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息,与所述将预先生成的密码校验代码植入所述风光预测算法文件中之间,还包括:根据所述单向加密算法,生成所述密码校验代码。优选地,所述将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库之后,还包括:将所述二进制动态库和存储所述初始校验信息的文件进行打包。优选地,所述硬件信息包括:中央处理器的标识、主板的标识、硬盘的标识和网卡的MAC地址中的至少一种。优选地,所述单向加密算法为PBKDF2算法。优选地,所述风光预测算法文件为一个或多个。第二方面,本专利技术实施例提供一种加密基于Python的风光预测算法文件的装置,包括:代码植入模块,用于将预先生成的密码校验代码植入所述风光预测算法文件中,以使得所述密码校验代码在用于实现风光预测算法的代码之前执行;文件编译模块,用于将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库;其中,所述密码校验代码,用于对执行所述风光预测算法文件的设备进行校验。第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,执行所述程序时实现如第一方面的各种可能的实现方式中任一种可能的实现方式所提供的加密基于Python的风光预测算法文件的方法的步骤。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面的各种可能的实现方式中任一种可能的实现方式所提供的加密基于Python的风光预测算法文件的方法的步骤。本专利技术实施例提供的加密基于Python的风光预测算法文件的方法及装置,通过将预先生成的密码校验代码植入风光预测算法文件中,对执行风光预测算法文件的设备进行校验,将植入密码校验代码的风光预测算法文件编译为二进制动态库,能防止基于Python的风光预测算法文件被篡改、被逆向和被非法拷贝,能更有效地保护代码安全性,能提高风光预测算法文件的安全性,能提高电网系统的运行安全性。并且,不需要修改服务中Python解释器等运行环境,采用更轻量级的只针对算法文件进行加密的方法,更加简单、方便,能提高加密的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为根据本专利技术实施例提供的加密基于Python的风光预测算法文件的方法的流程示意图;图2为根据本专利技术实施例提供的加密基于Python的风光预测算法文件的装置的结构示意图;图3为根据本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为了克服现有技术的上述问题,本专利技术实施例提供一种加密基于Python的风光预测算法文件的方法及装置,其专利技术构思是,将执行风光预测算法文件的设备的校验信息、单向加密算法、代码植入和编译成二进制动态库等多种技术结合使用,再由Python脚本自动化完成加密工作,形成一套完整的自动化加密方案,不用修改服务中Python解释器等运行环境,采用更轻量级的做法只针对算法文件进行加密,能防止基于Python的风光预测算法文件被篡改、被逆向和被非法拷贝,从而能提高安全性。图1为根据本专利技术实施例提供的加密基于Python的风光预测算法文件的方法的流程示意图。如图1所示,该方法包括:步骤S101、将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行。其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。具体地,在待加密的风光预测算法文件中被加密算法(风光预测算法)的主入口函数中插入一段本文档来自技高网
...

【技术保护点】
1.一种加密基于Python的风光预测算法文件的方法,其特征在于,包括:/n将预先生成的密码校验代码植入所述风光预测算法文件中,以使得所述密码校验代码在用于实现风光预测算法的代码之前执行;/n将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库;/n其中,所述密码校验代码,用于对执行所述风光预测算法文件的设备进行校验。/n

【技术特征摘要】
1.一种加密基于Python的风光预测算法文件的方法,其特征在于,包括:
将预先生成的密码校验代码植入所述风光预测算法文件中,以使得所述密码校验代码在用于实现风光预测算法的代码之前执行;
将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库;
其中,所述密码校验代码,用于对执行所述风光预测算法文件的设备进行校验。


2.根据权利要求1所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述将预先生成的密码校验代码植入所述风光预测算法文件中之前,还包括:
根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息。


3.根据权利要求2所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息,与所述将预先生成的密码校验代码植入所述风光预测算法文件中之间,还包括:
根据所述单向加密算法,生成所述密码校验代码。


4.根据权利要求2所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库之后,还包括:
将所述二进制动态库和存储所述初始校验信息的文件进行打包。


5.根据权利要求2所述的加密基于Python的风光预测算法文件的方法,其特...

【专利技术属性】
技术研发人员:雍正李华夏全军梁炎
申请(专利权)人:国能日新科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1