CN111143877B - 加密基于Python的风光预测算法文件的方法及装置 - Google Patents

加密基于Python的风光预测算法文件的方法及装置 Download PDF

Info

Publication number
CN111143877B
CN111143877B CN201911330200.2A CN201911330200A CN111143877B CN 111143877 B CN111143877 B CN 111143877B CN 201911330200 A CN201911330200 A CN 201911330200A CN 111143877 B CN111143877 B CN 111143877B
Authority
CN
China
Prior art keywords
wind
prediction algorithm
file
code
algorithm file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911330200.2A
Other languages
English (en)
Other versions
CN111143877A (zh
Inventor
雍正
李华
夏全军
梁炎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sprixin Technology Co ltd
Original Assignee
Sprixin Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sprixin Technology Co ltd filed Critical Sprixin Technology Co ltd
Priority to CN201911330200.2A priority Critical patent/CN111143877B/zh
Publication of CN111143877A publication Critical patent/CN111143877A/zh
Application granted granted Critical
Publication of CN111143877B publication Critical patent/CN111143877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种加密基于Python的风光预测算法文件的方法及装置。其中,方法包括:将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行;将植入密码校验代码的风光预测算法文件编译为二进制动态库;其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。本发明实施例提供的加密基于Python的风光预测算法文件的方法及装置,通过将预先生成的密码校验代码植入风光预测算法文件中,对执行风光预测算法文件的设备进行校验,将植入密码校验代码的风光预测算法文件编译为二进制动态库,能防止风光预测算法文件被篡改、被逆向和被非法拷贝,能提高安全性。

Description

加密基于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、将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行。
其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。
具体地,在待加密的风光预测算法文件中被加密算法(风光预测算法)的主入口函数中插入一段预先生成的密码校验代码。
该密码校验代码,可以为Python脚本。该密码校验代码提供一个可被调用的函数。
风光预测算法,指对风电功率或光伏功率进行预测的算法。
某一设备执行风光预测算法文件时,执行到用于实现风光预测算法的代码,先执行密码校验代码,调用上述可被调用的函数生成该设备的临时验证信息,并根据该设备的验证信息对该设备进行校验,验证该设备是否为合法设备。
若校验成功,说明该设备为合法设备,则可以继续执行用于实现风光预测算法的代码,实现对风电功率或光伏功率进行预测。
若校验失败,说明该设备为非法设备,则用于实现风光预测算法的代码无法正常运行,不能进行对风电功率或光伏功率的预测。
密码校验代码的植入点可通过人工手动选择函数名或自动识别用于实现风光预测算法的代码中的main函数实现。
执行风光预测算法文件的设备,一般为服务器。
步骤S102、将植入密码校验代码的风光预测算法文件编译为二进制动态库。
具体地,通过Python的超集Cython可将*.py扩展名的脚本文件(即植入密码校验后的风光预测算法文件)编译成二进制动态库来执行,编译后的.so文件使用起来与.py文件无差异。由于二进制的不可见性,有效地防止了代码泄露与恶意篡改。
本发明实施例通过将预先生成的密码校验代码植入风光预测算法文件中,对执行风光预测算法文件的设备进行校验,将植入密码校验代码的风光预测算法文件编译为二进制动态库,能防止基于Python的风光预测算法文件被篡改、被逆向和被非法拷贝,能更有效地保护代码安全性,能提高风光预测算法文件的安全性,能提高电网系统的运行安全性。并且,不需要修改服务中Python解释器等运行环境,采用更轻量级的只针对算法文件进行加密的方法,更加简单、方便,能提高加密的效率。
基于上述各实施例的内容,将预先生成的密码校验代码植入风光预测算法文件中之前,还包括:根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息。
可以理解的是,不同设备的硬件信息不同,因此,可以基于设备硬件信息区别不同的设备,基于设备硬件信息对设备进行校验。
具体地,将合法设备的硬件信息作为单向加密算法的输入,通过单向加密算法对合法设备的硬件信息进行加密,生成初始校验信息。
某一设备执行风光预测算法文件时,执行到用于实现风光预测算法的代码,先执行密码校验代码,调用相应的函数生成该设备的临时验证信息。
比较临时验证信息和初始校验信息是否相同,若相同,则校验成功;若不同,则校验失败。
通过基于上述硬件信息生成校验信息,能保证每台设备都对应唯一的初始校验信息,被加密的文件如果拷贝到其他设备上会因硬件信息受限而无法运行,从而能防止非法拷贝。
本发明实施例根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息,由于单向加密算法是单向不可逆的,能有效地防止彩虹表攻击,能提高安全性。
基于上述各实施例的内容,根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息,与将预先生成的密码校验代码植入风光预测算法文件中之间,还包括:根据单向加密算法,生成密码校验代码。
具体地,根据单向加密算法的算法流程和参数,自动生成密码校验代码。
单向加密算法的参数,可以包括运算的次数和算法用到的中间值等。
本发明实施例根据单向加密算法,生成密码校验代码,能基于密码校验代码对执行风光预测算法文件的设备进行校验,能更有效地防止基于Python的风光预测算法文件被非法拷贝,能提高安全性。
基于上述各实施例的内容,将植入密码校验代码的风光预测算法文件编译为二进制动态库之后,还包括:将二进制动态库和存储初始校验信息的文件进行打包。
需要说明的是,生成初始校验信息之后,可以通过密钥文件(key文件)存储生成的初始校验信息。
具体地,植入密码校验代码的风光预测算法文件编译为二进制动态库之后,先删除编译过程中所产生的中间临时文件与源码文件。
删除编译过程中所产生的中间临时文件与源码文件之后,将二进制动态库打包成压缩包。
将密钥文件放入该压缩包内的固定位置,以便执行密码校验代码时,读取到密钥文件,获取密钥文件存储的初始校验信息,并比较验证信息和初始校验信息。
本发明实施例通过将二进制动态库和存储初始校验信息的文件进行打包,是实现将根据风光预测算法文件生成的程序的自动化部署,提高部署效率。并且,删除编译过程中所产生的中间临时文件与源码文件,能防止基于Python的风光预测算法文件被逆向,能进一步提高安全性。
基于上述各实施例的内容,硬件信息包括:中央处理器的标识、主板的标识、硬盘的标识和网卡的MAC地址中的至少一种。
具体地,中央处理器(CPU,central processing unit)的标识(ID,Identitydocument)可以用于区别不同的CPU。
主板的标识(ID),可以用于区别不同的主板。
硬盘的标识(ID),可以用于区别不同的硬盘。
网卡的MAC地址,可以用于区别不同的网卡。
因此,可以将设备的CPU的ID、主板的ID、硬盘的ID和网卡的MAC地址中的至少一个,作为该设备的硬件信息。
通过基于上述硬件信息生成校验信息,能保证每台设备都对应唯一的key文件,被加密的文件如果拷贝到其他设备上会因硬件信息受限而无法运行,从而能防止非法拷贝。
本发明实施例基于设备的硬件信息对设备进行校验,能更有效地防止基于Python的风光预测算法文件被非法拷贝,能提高安全性。
基于上述各实施例的内容,单向加密算法为PBKDF2算法。
具体地,PBKDF2算法应用一个伪随机函数以导出密钥。
根据PBKDF2算法和合法设备的硬件信息,生成初始校验信息的步骤包括:
将合法设备的硬件信息组成的字符串转换为MD5码,作为加密环节中的公钥(即明文);
通过一个伪随机函数将明文和一个盐值作为输入参数进行hash运算,将结果作为新的盐值再与明文进行hash运算,多次重复后最终生成初始校验信息。
第一次生成的盐值(salt值),是一组随机生成的16位随机字符,该字符包含大小写字母、阿拉伯数组、特殊符号。它将作为加密环节中的私钥。
PBKDF2算法的参数包括私钥和重复次数。
重复次数,指根据PBKDF2算法中,进行hash运算的次数,即加密算法中迭代次数,该次数越高逆向破解难度越大同时加密运算时间也越长。
PBKDF2算法的重复次数可以达到上千次,逆向耗时需要耗费几百年,从而能有效的防止彩虹表攻击。
根据PBKDF2算法,生成密码校验代码时,将私钥和重复次数以硬编码方式作为两个常量写入密码校验代码中。
某一设备执行风光预测算法文件时,执行到用于实现风光预测算法的代码,先执行密码校验代码,调用相应的函数,根据该设备的硬件信息组成的字符串转换为MD5码,作为第二公钥;根据第二公钥、私钥和重复次数进行迭代的hash运算,生成临时校验信息;在压缩包内的固定位置获取初始校验信息,通过比较初始校验信息和临时校验信息,对该设备进行校验。
本发明实施例基于PBKDF2算法进行单向加密,能更有效地防止彩虹表攻击,能防止基于Python的风光预测算法文件被篡改和被逆向,能提高安全性。
基于上述各实施例的内容,风光预测算法文件为一个或多个。
具体地,待加密的风光预测算法文件可以为一个或多个。
可以根据选择指令确定用户选定的一个或多个后缀为.py的风光预测算法文件,或用户选定的一个目录下所有的后缀为.py的风光预测算法文件作为待加密的风光预测算法文件,记录并保存待加密的风光预测算法文件的路径。
本发明实施例通过对待加密的风光预测算法文件进行批处理,能提高加密的效率。
图2为根据本发明实施例提供的加密基于Python的风光预测算法文件的装置的结构示意图。基于上述各实施例的内容,如图2所示,该装置包括代码植入模块201和文件编译模块202,其中:
代码植入模块201,用于将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行;
文件编译模块202,用于将植入密码校验代码的风光预测算法文件编译为二进制动态库;
其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。
具体地,代码植入模块201和文件编译模块202电连接。
代码植入模块201在待加密的风光预测算法文件中被加密算法(风光预测算法)的主入口函数中插入一段预先生成的密码校验代码。
该密码校验代码,可以为Python脚本。该密码校验代码提供一个可被调用的函数。
某一设备执行风光预测算法文件时,执行到用于实现风光预测算法的代码,先执行密码校验代码,调用上述可被调用的函数生成该设备的临时验证信息,并根据该设备的验证信息对该设备进行校验,验证该设备是否为合法设备。
文件编译模块202通过Python的超集Cython可将*.py扩展名的脚本文件(即植入密码校验后的风光预测算法文件)编译成二进制动态库来执行,编译后的.so文件使用起来与.py文件无差异。由于二进制的不可见性,有效地防止了代码泄露与恶意篡改。
本发明实施例提供的加密基于Python的风光预测算法文件的装置,用于执行本发明上述各实施例提供的加密基于Python的风光预测算法文件的方法,该加密基于Python的风光预测算法文件的装置包括的各模块实现相应功能的具体方法和流程详见上述加密基于Python的风光预测算法文件的方法的实施例,此处不再赘述。
该加密基于Python的风光预测算法文件的装置用于前述各实施例的加密基于Python的风光预测算法文件的方法。因此,在前述各实施例中的加密基于Python的风光预测算法文件的方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例通过将预先生成的密码校验代码植入风光预测算法文件中,对执行风光预测算法文件的设备进行校验,将植入密码校验代码的风光预测算法文件编译为二进制动态库,能防止基于Python的风光预测算法文件被篡改、被逆向和被非法拷贝,能更有效地保护代码安全性,能提高风光预测算法文件的安全性,能提高电网系统的运行安全性。并且,不需要修改服务中Python解释器等运行环境,采用更轻量级的只针对算法文件进行加密的方法,更加简单、方便,能提高加密的效率。
图3为根据本发明实施例提供的电子设备的实体结构示意图。基于上述实施例的内容,如图3所示,该电子设备可以包括:处理器(processor)301、存储器(memory)302和总线303;其中,处理器301和存储器302通过总线303完成相互间的通信;处理器301用于调用存储在存储器302中并可在处理器301上运行的计算机程序指令,以执行上述各方法实施例所提供的加密基于Python的风光预测算法文件的方法,例如包括:将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行;将植入密码校验代码的风光预测算法文件编译为二进制动态库;其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。
本发明另一实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的加密基于Python的风光预测算法文件的方法,例如包括:将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行;将植入密码校验代码的风光预测算法文件编译为二进制动态库;其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。
此外,上述的存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明另一实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的加密基于Python的风光预测算法文件的方法,例如包括:将预先生成的密码校验代码植入风光预测算法文件中,以使得密码校验代码在用于实现风光预测算法的代码之前执行;将植入密码校验代码的风光预测算法文件编译为二进制动态库;其中,密码校验代码,用于对执行风光预测算法文件的设备进行校验。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行上述各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种加密基于Python的风光预测算法文件的方法,其特征在于,包括:
将预先生成的密码校验代码植入所述风光预测算法文件中,以使得所述密码校验代码在用于实现风光预测算法的代码之前执行;
将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库;
其中,所述密码校验代码,用于对执行所述风光预测算法文件的设备进行校验;若校验成功,则允许所述设备执行所述用于实现风光预测算法的代码;若校验失败,则不允许所述设备执行用于实现风光预测算法的代码;
所述将预先生成的密码校验代码植入所述风光预测算法文件中之前,还包括:
根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息;
在执行所述密码校验代码,生成所述设备的临时验证信息与所述初始校验信息相同的情况下,校验成功;否则,校验失败。
2.根据权利要求1所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息,与所述将预先生成的密码校验代码植入所述风光预测算法文件中之间,还包括:
根据所述单向加密算法,生成所述密码校验代码。
3.根据权利要求1所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库之后,还包括:
将所述二进制动态库和存储所述初始校验信息的文件进行打包。
4.根据权利要求1所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述硬件信息包括:
中央处理器的标识、主板的标识、硬盘的标识和网卡的MAC地址中的至少一种。
5.根据权利要求1所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述单向加密算法为PBKDF2算法。
6.根据权利要求1至5任一所述的加密基于Python的风光预测算法文件的方法,其特征在于,所述风光预测算法文件为一个或多个。
7.一种加密基于Python的风光预测算法文件的装置,其特征在于,包括:
代码植入模块,用于将预先生成的密码校验代码植入所述风光预测算法文件中,以使得所述密码校验代码在用于实现风光预测算法的代码之前执行;
文件编译模块,用于将植入所述密码校验代码的所述风光预测算法文件编译为二进制动态库;
其中,所述密码校验代码,用于对执行所述风光预测算法文件的设备进行校验;若校验成功,则允许所述设备执行所述用于实现风光预测算法的代码;若校验失败,则不允许所述设备执行用于实现风光预测算法的代码;
所述代码植入模块,还用于根据预设的单向加密算法和合法设备的硬件信息,生成初始校验信息;
在执行所述密码校验代码,生成所述设备的临时验证信息与所述初始校验信息相同的情况下,校验成功;否则,校验失败。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一所述的加密基于Python的风光预测算法文件的方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求至1至6任一所述的加密基于Python的风光预测算法文件的方法的步骤。
CN201911330200.2A 2019-12-20 2019-12-20 加密基于Python的风光预测算法文件的方法及装置 Active CN111143877B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911330200.2A CN111143877B (zh) 2019-12-20 2019-12-20 加密基于Python的风光预测算法文件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911330200.2A CN111143877B (zh) 2019-12-20 2019-12-20 加密基于Python的风光预测算法文件的方法及装置

Publications (2)

Publication Number Publication Date
CN111143877A CN111143877A (zh) 2020-05-12
CN111143877B true CN111143877B (zh) 2023-01-03

Family

ID=70519219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911330200.2A Active CN111143877B (zh) 2019-12-20 2019-12-20 加密基于Python的风光预测算法文件的方法及装置

Country Status (1)

Country Link
CN (1) CN111143877B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269970A (zh) * 2020-10-28 2021-01-26 国能日新科技股份有限公司 一种脚本加密方法、装置、服务器及存储介质
CN112613023B (zh) * 2020-12-28 2023-04-28 厦门市美亚柏科信息股份有限公司 一种认证信息生成算法的保护方法和终端
CN112685077A (zh) * 2020-12-29 2021-04-20 平安普惠企业管理有限公司 数据修改方法、系统、计算机设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199778A (zh) * 2014-09-15 2014-12-10 大连楼兰科技股份有限公司 测试软件注册算法错误的方法
CN104932902A (zh) * 2015-07-09 2015-09-23 魅族科技(中国)有限公司 一种生成apk文件的方法及终端

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104199778A (zh) * 2014-09-15 2014-12-10 大连楼兰科技股份有限公司 测试软件注册算法错误的方法
CN104932902A (zh) * 2015-07-09 2015-09-23 魅族科技(中国)有限公司 一种生成apk文件的方法及终端

Also Published As

Publication number Publication date
CN111143877A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN111143877B (zh) 加密基于Python的风光预测算法文件的方法及装置
CN105683990B (zh) 用于保护动态库的方法和装置
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
CN105068932B (zh) 一种Android应用程序加壳的检测方法
CN105453102B (zh) 用于识别已泄漏的私有密钥的系统和方法
CN112269970A (zh) 一种脚本加密方法、装置、服务器及存储介质
US20140337639A1 (en) Steganographic embedding of executable code
EP3127034A1 (en) Software protection
CN104268444A (zh) 一种云OS Java源代码保护方法
CN110489942A (zh) 一种WebAssembly文件的处理方法及系统
CN109241707A (zh) 应用程序的混淆方法、装置和服务器
CN112966713A (zh) 基于深度学习的dga域名检测方法、装置及计算机设备
CN113722683A (zh) 模型保护方法、装置、设备、系统以及存储介质
CN111159661B (zh) 一种防止反编译方法、装置、电子设备及存储介质
CN112559980B (zh) 一种可内嵌众多任意app的小程序运行时
KR101482700B1 (ko) 해시를 이용한 프로그램의 무결성 검증 방법
CN106687978A (zh) 对栈破坏利用的抑制
CN109902500B (zh) 一种通过链接库实现业务调用数据安全的方法及系统
CN116910712A (zh) 代码保护方法、系统、电子设备及存储介质
CN109190358B (zh) 站点密码生成方法、系统及密码管理器
CN105933303A (zh) 一种文件篡改的检测方法及装置
CN114637985A (zh) 一种基于多环境参数的Android应用登录伪造识别方法
CN108427559B (zh) 一种脚本文件生成和调用方法以及装置
CN106843853A (zh) 保护用户信息的方法和装置
CN109657458B (zh) Ios中保护钥匙串数据的方法、存储介质、设备及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant