CN115544521B - 一种离线安装文件的校验和生成方法及装置 - Google Patents
一种离线安装文件的校验和生成方法及装置 Download PDFInfo
- Publication number
- CN115544521B CN115544521B CN202211486692.6A CN202211486692A CN115544521B CN 115544521 B CN115544521 B CN 115544521B CN 202211486692 A CN202211486692 A CN 202211486692A CN 115544521 B CN115544521 B CN 115544521B
- Authority
- CN
- China
- Prior art keywords
- file
- installation
- offline
- code
- self
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种离线安装文件生成和校验方法、装置、介质及电子设备。该方法包括:在离线安装文件中,包含按照预设的字段位置填充的文件名称、校验码信息和安装码;通过运行自检程序读取离线安装文件的文件名称、校验码信息以及安装码;根据文件名称对离线安装文件的本地文件名属性进行校验,和/或,根据校验码信息对安装码进行校验;若校验一致,则确定离线安装文件通过校验,并执行所述安装码。采用本技术方案,可以在离线安装文件升级的过程中对自检程序进行封装,这样在解封之后,可以基于自检程序对于升级文件的文件名以及校验码进行校验,可以实现准确、高效的完成升级文件的校验操作。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种离线安装文件的校验和生成方法、装置。
背景技术
随着计算机技术的迅速发展,不同用户对于网络需求各有不同,对于一些数据安全要求较高的企业级用户,往往是在内部环境中完成数据的传输和处理等任务的。这种情况下,往往不允许连接外部网络,以保证网络和主机设备的安全。对于软件的组件,会存在需要初次安装以及后续更新的需要。
软件包(安装包或更新包)需要通过一次或数次的外部网络转发、U盘拷贝、内部网络转发、人工审核、扫描工具审核等操作环节,在这些操作环节当中,难免出现网络故障、操作失误、工具系统限制等原因,导致软件包的属性或完整性发生异常。例如,需要一次性更新多个软件组件,经过多次文件流转、多人多环节的操作之后,在目的设备上得到多个文件的名称变成了本地文件名:file1、file2、file3、……,此时已经无法分辨文件的原始名称,更无法保证软件包的安装顺序,也无法验证软件包是否完整。
但是为了完全离线的方式进行安装,需要对安装码进行离线文件验证。通常情况下使用校验码进行文件一致性校验,该校验码一般是从相关的发布网站获取。但是在离线环境中,有可能会存在安装码需要由人工验证。随着时间的推移和文件数量的增加,出错的情况越来越难以避免。而文件的误用,将使整个软件系统面临巨大的风险。
发明内容
本申请实施例提供一种离线安装文件的校验和生成方法及装置,包含存储介质及电子设备。本申请通过在离线安装文件中解封后,运行自检程序,可以实现对文件名称和安装码的自动校验,可以提高校验效率以及准确度,避免因为人工校验所引入的错误,影响软件系统的运行安全。
第一方面,本申请实施例提供一种离线安装文件的校验方法,包括:
在离线安装文件中,包含按照预设的字段位置填充的文件名称、校验码信息和安装码;
通过运行所述自检程序读取所述离线安装文件的文件名称、校验码信息以及安装码;
根据所述文件名称对所述离线安装文件的本地文件名属性进行校验,和/或,根据所述校验码信息对所述安装码进行校验;
若校验一致,则确定所述离线安装文件通过校验,并执行所述安装码。
进一步的,根据所述校验码信息对所述安装码进行校验,包括:
通过运行自检程序,对所述安装码进行计算,生成所述安装码的实际校验码;优选地,所述实际校验码以所述本地文件名属性和所述安装码的至少一部分作为联合输入数据通过校验码生成算法生成。
对所述校验码信息与所述实际校验码进行一致性校验。
进一步的,所述方法还包括:在运行自检程序之前,获取与所述离线安装文件分体封装的所述自检程序。
进一步的,所述方法还包括:运行自检程序时,所述自检程序首先获取所述预设的字段位置的信息;或者,所述自检程序中包含所述预设的字段位置的信息。
进一步的,所述方法还包括:运行所述自检程序时,所述自检程序首先获取校验码生成算法;或者,所述自检程序中包含所述校验码生成算法。
进一步的,所述方法还包括:在根据所述文件名称对所述离线安装文件的本地文件名属性进行校验之后,若校验不一致,则确定文件命名错误、生成第一错误信息。在根据所述校验码信息对所述安装码进行校验之后,若校验不一致,则确定所述安装码错误、生成第二错误信息。
进一步的,在通过运行所述自检程序读取所述离线安装文件的安装码之后,所述方法还包括:
创建临时文件;
将所述安装码存储至所述临时文件中。
第二方面,本申请实施例还提供一种离线安装文件的生成方法,包括:
确定安装码对应的文件名称;
计算所述安装码对应的校验码信息;优选地,所述校验码以所述文件名称和所述安装码的至少一部分作为联合输入数据通过所述校验码生成算法生成;
新建封装文件,并将自检程序代码或自检程序引擎、所述文件名称、所述校验码信息以及所述安装码按照预设的字段位置填充至封装文件中,以生成离线安装文件;
所述的自检程序,用于按照所述预设的字段位置读取所述离线安装文件的文件名称、校验码信息以及安装码;还用于根据所述文件名称对所述离线安装文件的本地文件名属性进行校验,和/或,根据所述校验码信息对所述安装码进行校验。
优选地,所述离线安装文件的生成方法还包括:确定由安装码生成校验码信息的校验码生成算法,并将所述校验码生成算法写入到所述自检程序中。
优选地,所述离线安装文件的生成方法还包括:确定生成所述预设的字段位置的加密算法,并将所述加密算法写入到所述自检程序中。
优选地,在本申请第二方面的任一实施例中,在生成离线安装文件之后,所述方法还包括:根据所述文件名称,对所述离线安装文件进行命名,生成由预设字段与文件名称结合而成的离线安装文件的本地文件名属性。
第三方面,本申请实施例还提供了一种离线安装文件的校验装置,用于实现本申请第一方面任一实施例的方法,所述装置包括:
解封模块,用于获取离线安装文件,并对所述离线安装文件进行解封装,获取自检程序;
自检模块,用于通过运行所述自检程序读取所述离线安装文件的文件名称、校验码信息以及安装码;
第一校验模块,用于根据所述文件名称对所述离线安装文件的本地文件名属性进行校验;
结果确定模块,用于若校验一致,则确定文件命名符合标准;
第二校验模块,用于根据所述校验码信息对所述安装码进行校验;
更新模块,用于若校验一致,则确定所述离线安装文件通过校验,并执行所述安装码。
第四方面,本申请实施例还提供了一种离线安装文件的生成装置,用于实现本申请第二方面任一实施例的方法,所述装置包括:
名称确定模块,用于确定安装码对应的文件名称;
计算模块,用于计算所述安装码对应的校验码信息;
封装模块,用于新建封装文件,并将自检程序代码或自检程序引擎、所述文件名称、所述校验码信息以及所述安装码按照预设的字段位置填充至封装文件中,以生成离线安装文件。
第五方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的离线安装文件校验方法,或者,实现如本申请实施例所述的离线安装文件生成方法。
第六方面,本申请实施例还提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的离线安装文件校验方法,或者,实现如本申请实施例所述的离线安装文件生成方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请利提供的技术方案,可以在离线安装文件升级的过程中对于自检程序进行封装,这样在解封之后,可以基于自检程序对于升级文件的文件名以及校验码进行校验,可以实现准确、高效的完成升级文件的校验操作。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例一提供的离线安装文件校验方法的流程示意图;
图2是本申请实施例二提供的离线安装文件生成方法的流程示意图;
图3是本申请实施例一和实施例二提供的离线安装文件处理过程示意图;
图4是本申请实施例三提供的离线安装文件校验装置的结构示意图;
图5是本申请实施例四提供的离线安装文件生成装置的结构示意图;
图6是本申请实施例五提供的一种电子设备的结构示意图。
实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例
图1是本申请实施例一提供的离线安装文件校验方法的流程示意图。本实施例可适用于对于升级文件进行校验,该方法可以由本申请实施例所提供的离线安装文件的校验装置执行,该装置可以由软件和/或硬件的方式来实现,并且可以集成于用于离线安装文件的校验的电子设备当中。
如图1所示,所述方法包括:
S110、在离线安装文件中,包含按照预设的字段位置填充的文件名称、校验码信息和安装码。
具体的,离线安装文件可以是通过将安装码进行封装生成的文件。离线安装文件可以在官方网站和FTP(File Transfer Protocol,文件传输协议)服务器等渠道进行发布。本方案中,执行主体可以是需要升级的设备,也可以是为需要升级的设备提供安装码的辅助设备。在本方案中,可以通过通用串口协议来获取离线安装文件,还可以通过网络传输来获取离线安装文件,并将其导入至需要升级的设备中。
在得到离线安装文件之后,对其进行解封装,获得自检程序。对于解封的方式,本申请不做限定。
其中,所得到的自检程序,可以是一段可以在任何系统中运行的代码,自检程序的运行,可以将设备引入到自检阶段。
需要说明的是,所述自检程序的创建、生成过程,如本申请实施例二所述,自检程序是一段固定的程序,需要预先准备好,可在封装软件包时,附加在文件的开头位置;或者在封装软件包中的设定位置包含运行所述自检程序的指针。
自检程序的功能,主要是自动化的进行软件包名称校验、校验软件包完整性检验以及软件包的安装或更新。在正常情况下,进行自动化的软件校验与安装;在异常情况下,进行充分的错误信息提示。
获得自检程序的方式有2种:
1、自检程序包含在所述离线安装文件中;
2、使用预装的自检程序。根据离线安装文件中的标识、链接或指针读取自检程序。所述预装的自检程序,可以是预先安装在客户设备中,也可以是预设的服务器,例如预先安装在供应端的系统中供客户设备访问。
S120、通过运行所述自检程序读取所述离线安装文件的文件名称、校验码信息以及安装码。
现有技术中,文件名称作为一种文件属性,在文件流转过程中容易发生变化,并且这种变化往往会被文件使用者忽视,从而引起文件误用、文件安装顺序错误等误操作,导致软件工作异常等问题、甚至软件数据错误等难以排查的问题。
在文件流转过程中,由于网络故障、U盘故障、USB接口故障、系统故障、人员操作失误等等因素,会引起文件获取错误(错拿了另一个文件)、文件不完整等问题。现有技术中,需要从软件发布方获取文件校验码,再通过手工操作计算出离线设备上安装文件的校验码,最后通过肉眼比对的方式,对文件正确性、完整性进行校验。
本发明中,在离线安装文件发布时,将文件名称和文件校验码打包封装到文件内容中。现有的文件流转技术中,都不会修改文件内容,从而保证了该信息的一致性。
例如,自检程序运行步骤包括:
自检程序位于离线安装文件的开头位置,执行该文件时会首先运行自检程序。自检程序启动后,首先从离线文件的后续位置相继提取出:软件包名称、软件包校验码以及软件包文件;然后对软件包的名称和内容进行校验;最后,若校验成功则自动完成软件安装或更新,若校验失败则输出错误信息并退出安装或更新过程。
在一些实施例中,运行自检程序时,所述自检程序首先获取所述预设的字段位置的信息。例如,所述预设的字段位置的信息是标准的、自定义的或是由服务端和客户端协商生成的,可以是预存在客户设备中或者从指定的服务器下载。再例如,所述自检程序中包含生成所述预设的字段位置的信息的加密算法,通过运行所述算法获得所述预设的字段位置。
在另一些实施例中,所述自检程序中包含所述预设的字段位置的信息。所述自检程序按照所述预设的字段位置读取所述离线安装文件的文件名称、校验码信息以及安装码。
其中,文件名称可以是离线安装文件封装的时候就已经写入的,可以通过自检程序来进行读取,得到当前离线安装文件中封装的安装码的文件名称。例如该名称可以是NPM-update-22.06.2-STD.bin。
例如,申请人的软件产品NPM的更新包NPM-update-22.06.2-STD.bin,在上传至企业客户内网设备的过程中,就遭遇到过各种各样的异常问题。包括文件名称被修改、文件内容不完整等,甚至混淆多个文件的上传目标设备,导致文件误用的情况。这些环节都不是软件供应方可控的,无法通过供应方的操作规范来避免此类情况的发生。
文件错误情况会引起的后果包括但不限于:软件安装失败、软件可安装但无法正常运行、软件可运行但数据处理错误等等。更进一步的影响包括但不限于:软件安装失败需分析原因耗时耗力、无法正常运行需联系相关技术人员分析原因、数据处理错误影响深远甚至难以发现等等。
本方案中,安装码的校验码信息可以是通过服务器生成的,用于供升级设备下载安装码之后对安装码的完整性以及准确性进行校验的。
例如,校验码中可以包括安装码的大小等信息,所以安装码的大小的不同,肯定会导致校验码的不同,因此可以通过校验码来验证安装码是否完整。
再例如,校验码还可以包括安装码的版本信息,因此安装码的版本的不同,肯定会导致校验码的不同,因此可以通过校验码来验证安装码是否准确。
在一个可行的实施例中,可选的,在通过运行所述自检程序得到所述离线安装文件的安装码之后,所述方法还包括:
创建临时文件或目录;
将所述安装码存储至所述临时文件或目录中。
其中,在解封装之后,可以将安装码以一个临时文件进行存储,并且可以对其存储至一个临时文件或临时目录下,这样可以在校验过程中需要该安装码的情况下,再根据该临时文件或临时目录进行读取,避免误操作将其修改或者变更等,提高安装码的安全性。
S130、根据所述文件名称对所述离线安装文件的本地文件名属性进行校验。
其中,可以通过运行自检程序来得到文件名称与离线安装文件的本地文件名属性的校验结果。此处,离线安装文件是经过封装生成的,并且可以将离线安装文件的本地文件名属性中包括安装码的文件名称。例如,离线安装文件的本地文件名属性可以是对所述文件名称增加一个预设字段的前缀生成的,如[Release]-NPM-update-22.06.2-STD.bin,在这种情况下,可以基于文件名称与离线安装文件的本地文件名属性进行校验,生成校验结果。具体的校验方式可以是对于文件名称与离线安装文件的本地文件名属性进行对比,或者与离线安装文件的本地文件名属性中排除预设字段后的部分进行对比。
S140、若校验一致,则确定文件命名符合标准。
此处,若校验一致,则确定文件命名符合标准,若校验不一致,则可能是在对离线安装文件进行封装后进行存储的过程中,或者是由一个设备拷贝至另一个设备的过程中,存在被人员错误修改。在这种情况下,为了保证升级的设备的软件系统的安全,可以确定为校验不一致,直接进行报错处理。
S150、根据所述校验码信息对所述安装码进行校验。
本方案中校验码信息也是封装于离线安装文件中的,此处可以通过自检程序基于安装码来生成校验码,两个校验码进行校验,得到校验结果。
其中,运行自检程序之后,可以读取文件名称和校验码信息,其后的部分是安装码,可以另存为一个临时文件。
在一个实施例中,可选的,根据所述校验码信息对所述安装码进行校验,包括:
通过运行所述自检程序,对所述安装码进行计算,生成所述安装码的实际校验码;
对所述校验码信息与所述实际校验码进行一致性校验。
其中,自检程序可以采用与服务器相同的校验码生成算法,对安装码进行计算,由当前安装码生成实际校验码。并基于此来与校验码信息进行一致性校验。所述校验码生成算法的输入数据包含所述安装码的至少一部分数据,优选地,所述实际校验码以所述本地文件名属性和所述安装码的至少一部分作为联合输入数据通过所述校验码生成算法生成。
运行所述自检程序时,在一些实施例中,所述自检程序首先获取校验码生成算法;例如,所述校验码生成算法是标准的、自定义的或是由服务端和客户端协商生成的,可以是预存在客户设备中、或者从指定的服务器下载。
在一些实施例中,所述自检程序中包含所述校验码生成算法,通过运行所述校验码生成算法生成实际校验码。通过这样的设置,可以提高校验码信息校验过程的准确性,并且校验码的生成算法部署于自检程序中,可以很好的确保校验码的随用随检,无需连接外网,提高校验过程的准确性,和便携性。
还需要说明的是,本申请的实施例包含步骤S130和S150中的至少一个步骤。
S160、若校验一致,则确定所述离线安装文件通过校验,并执行所述安装码。
可以理解的,如果校验不一致,可以生成相应的错误信息,如果校验一致,则可以从当前的校验阶段转换到升级阶段,完成校验的全过程,并确保升级后的软件系统的安全。
在上述各技术方案的基础上,可选的,在根据所述文件名称对所述离线安装文件的本地文件名属性进行校验之后,所述方法还包括:
若校验不一致,则确定文件命名错误,并生成文件命名错误的第一错误信息;
在根据所述校验码信息对所述安装码进行校验之后,所述方法还包括:
若校验不一致,则确定所述安装码错误,并生成第二错误信息。
其中,第一错误信息和第二错误信息可以显示于显示屏中,供工作人员进行查看,并根据错误信息提示的,得到生成结果。
自检程序输出结果包括:
若软件校验成功,则输出“校验成功,准备安装软件”。
若软件名称校验失败,则输出“软件名称校验失败,该软件实际名称为xxx,是否继续安装”
若软件完整性校验失败,则输出“软件完整性校验失败,请重新获取软件后重试”
本方案通过这样的设置,可以及时将错误信息进行告知,便于工作人员对于离线安装文件所出现的问题第一时间进行掌握。
本申请提供的实施例,在离线安装文件中,包含按照预设的字段位置填充的文件名称、校验码信息和安装码;通过运行所述自检程序读取所述离线安装文件的文件名称、校验码信息以及安装码;根据所述文件名称对所述离线安装文件的本地文件名属性进行校验;若校验一致,则确定文件命名符合标准;根据所述校验码信息对所述安装码进行校验;若校验一致,则确定所述离线安装文件通过校验,并执行所述安装码。本实施例通过在离线安装文件中解封获得自检程序的运行,可以实现对于文件名称和文件的自动校验,可以提高校验效率以及准确度,避免因为人工校验所引入的错误,影响软件系统的运行安全。
实施例
图2是本申请实施例二提供的离线安装文件的封装过程示意图。本实施例二是在上述各实施例的基础上进行的进一步优化。具体优化为:在获取离线安装文件之前,所述方法还包括:确定预先构建的自检程序;确定所述安装码对应的文件名称;计算所述安装码对应的校验码信息;新建封装文件,并将所述自检程序,所述文件名称,所述校验码信息以及所述安装码写入至封装文件中,以生成离线安装文件。
如图2所示,该过程主要包括:
S210、确定预先构建的自检程序;
自检程序可以是由工作人员进行开发生成的,可以将其发布在官方网站上面。自检程序的可以在离线环境或者内网环境进行运行。
S220、确定所述安装码对应的文件名称;
其中,文件发布前,需要对文件进行预处理封装,使用封装后的文件进行发布。获取文件名称,如:NPM-update-22.06.2-STD.bin。
S230、计算所述安装码对应的校验码信息;
获取文件的校验码信息,该校验码信息可以是由提供安装码的服务器生成的。校验码信息中可以包括校验码以及校验码的生成时间和生成该校验码的服务器地址等。
校验码计算可以使用MD5、SHA256等常用的标准算法,也可以使用自研的其它算法,所述校验码生成算法的输入数据包含所述安装码的至少一部分数据,优选地,所述校验码以所述文件名称和所述安装码的至少一部分作为联合输入数据生成。
数据加密可以使用RSA、ECC、3DES、AES等常用的标准算法,也可以使用自定义的其它算法。
加密密钥传递方式可选:1、内置于自检程序中;2、另存一个密钥文件单独传递;3、使用时手工输入等。
S240、新建封装文件,并将自检程序代码或自检程序引擎、所述文件名称、所述校验码信息以及所述安装码按照预设的字段位置填充至封装文件中,以生成离线安装文件。
所述的自检程序,用于按照所述预设的字段位置读取所述离线安装文件的文件名称、校验码信息以及安装码;还用于根据所述文件名称对所述离线安装文件的本地文件名属性进行校验,和/或,根据所述校验码信息对所述安装码进行校验。
优选地,确定由安装码生成校验码信息的校验码生成算法,并将所述校验码生成算法写入到所述自检程序中。
优选地,确定生成所述预设的字段位置的加密算法,并将所述加密算法写入到所述自检程序中。
新建文件,然后依次写入如下信息:离线自检程序代码或自检程序引擎,文件名称,文件校验码以及安装码等。
离线文件封装的方式,可一体式封装或分体式封装。
1、一体式封装:自检程序封装在离线文件中。一体式封装用户操作更简单,无需其他软件工具辅助,可自行完成软件的校验与更新。离线文件主要包含有:自检程序、文件名(可选加密)、文件大小(可选加密)、文件校验码(可选加密)、软件组件(可选加密)。
2、分体式封装:自检程序预装至客户内网设备中或预设的服务器中。分体式封装安全级别更高。离线文件主要包含有:文件名(可加密)、文件大小(可加密)、校验码(可加密)、安装码软件组件(可加密)。进一步地,在离线安装文件中还可包含自检程序的标识、链接或指针等代码,以触发自检程序。本申请中,将触发所述自检程序的代码称为自检程序引擎。分体式封装的安装包无法单独使用,即使误操作也无法真正执行(不是可执行程序)。
本方案中,具体的,例如可以使用封装后的文件在官方网站和FTP服务器等渠道进行发布,相关运维人员或技术支持人员进行下载后,通过U盘拷贝、邮件转发或其他方式的多次流转后,最终上传至目标设备上,再由相关人员执行所述安装码。
本实施例在上述实施例的基础上,提供了一种离线安装文件的封装过程。该过程结合解封装过程,可以在文件经过多次转发、上传、下载、压缩、解压、重命名等操作之后,仍然能够准确判断文件是否完整以及文件的名称,本发明预先对离线安装文件进行一次封装,在使用该文件进行组件更新时,进行文件解封操作得到封装信息和原始文件,使用封装信息对原始文件进行离线校验,确认文件无误后再进行组件升级更新。
本实施例通过离线安装文件的封装,可以实现基于自检程序完成对于文件名称和安装码的自动校验,可以提高校验效率以及准确度,避免因为人工校验所引入的错误,影响软件系统的运行安全。
在一个可行的实施例中,可选的,在生成离线安装文件之后,所述方法还包括:
S250、根据所述文件名称,对所述离线安装文件进行命名,生成由预设字段与文件名称结合而成的离线安装文件的本地文件名属性。
例如,新建文件并命名为:[Release]-NPM-update-22.06.2-STD.bin。
如上述示例所展现的,可以通过对文件名称采用前缀进行标记的方式,使得离线安装文件保留有完整的文件名称,从而提高安装文件的校验效率。
在一个可行的实施例中,具体的,在确定预先构建的自检程序之后,所述方法还包括:
获取由安装码生成校验码信息的校验码生成算法,并将所述校验码生成算法写入到所述自检程序中。
其中,校验码生成算法可以通过部署到自检程序中,供自检程序在自检阶段,通过对解封装得到的安装码的计算,可以生成实际校验码,并基于此来完成安装码的校验。本方案通过这样的设置,可以实现完全离线就可以进行校验的目的,提高校验效率和准确性。
本生成方法与上述各实施例所提供的离线安装文件的校验方法相对应,具有与之相应的功能模块和有益效果。具体功能同前述实施例中各步骤的具体内容,此处不再赘述。
图3是本申请实施例一和实施例二提供的离线安装文件的处理过程示意图。在上述各实施例的基础上,可以参照如下步骤进行实现:
文件发布前,需要对文件进行预处理封装,使用封装后的文件进行发布。文件封装过程如下:
获取文件名称,如:NPM-update-22.06.2-STD.bin;
获取文件的校验码;
新建文件并命名为:[Release]-NPM-update-22.06.2-STD.bin,然后依次写入如下信息:
离线自检程序;
文件名称;
文件校验码;
安装码。
通过使用封装文件进行升级操作时,可直接运行该文件。因为文件开头即是自检程序部分,所以会进入文件自检阶段。自检程序首先从封装文件中解析出“文件名称”和“校验码信息”,其后的部分另存为一个临时文件。
文件校验分两部分,分别为文件名称校验和安装码校验。
文件名称校验:由于文件经过多次流转,经过多次软件和人工处理或误操作等因素,文件名称经常被修改而无法判断拿到的文件是否与预期相符。自检程序将判断封装文件本地文件名属性的预设字段“[Release]-”之外的部分是否与文件名称一致,如果报错中止更新过程,并输出详细的错误信息,供相关人员进行分析处理。
安装码校验:在文件的拷贝、传输、压缩、解压等过程中,如果因不可控因素导致文件不完整,则可能出现难以预期的后果。自检程序会根据文件解封过程提取并另存为的临时文件计算出一个新的校验码,并将其与封装信息中的校验进行比对,如果比对失败则中止更新过程,并输出详细的错误信息。
安装码校验结果提示:文件的离线校验过程结束后,输出校验结果。
通过文件校验后,自检程序则认为解封所生成的文件为正确的更新文件,自动运行该文件进行相关组件的升级更新。
通过执行本发明所提供的技术方案,将文件封装一层包含自检程序代码或自检程序引擎的数据段,文件校验通过自检程序自动完成,检验通过会自动执行后续升级操作。本发明不但对离线文件进行了准确的一致性校验,而且完全避免了校验过程中的人工操作,在文件正确的情况下仅提示文件校验结果,保持软件升级更新过程顺畅,用户体验得到巨大提升。
实施例
图4是本申请实施例三提供的离线安装文件的校验装置的结构示意图。所述装置包括:
解封模块510,用于在离线安装文件中,包含按照预设的字段位置填充的文件名称、校验码信息和安装码;
自检模块520,用于通过运行所述自检程序读取所述离线安装文件的文件名称、校验码信息以及安装码;
第一校验模块530,用于根据所述文件名称对所述离线安装文件的本地文件名属性进行校验,如步骤S130;
结果确定模块540,用于若校验一致,则确定文件命名符合标准;
第二校验模块550,用于根据所述校验码信息对所述安装码进行校验,如步骤S150;
更新模块560,用于若校验一致,则确定所述离线安装文件通过校验,并执行所述安装码。
本装置可以执行上述各实施例所提供的离线安装文件的校验方法,具有与之相应的功能模块和有益效果。具体功能同前述实施例中各步骤的具体内容,此处不再赘述。
实施例
图5是本申请实施例四提供的离线安装文件的生成装置的结构示意图。如图5所示,所述装置包括:
名称确定模块610,用于确定安装码对应的文件名称,进一步地,还用于确定所述离线安装文件的本地文件名属性;
计算模块620,用于计算所述安装码对应的校验码信息,如步骤S230;
封装模块630,用于新建封装文件,并将自检程序代码或自检程序引擎、所述文件名称、所述校验码信息以及所述安装码按照预设的字段位置填充至封装文件中,以生成离线安装文件。
所述的自检程序,用于按照所述预设的字段位置读取所述离线安装文件的文件名称、校验码信息以及安装码;还用于根据所述文件名称对所述离线安装文件的本地文件名属性进行校验,和/或,根据所述校验码信息对所述安装码进行校验。
本装置可以执行上述各实施例所提供的离线安装文件的生成方法,具有与之相应的功能模块和有益效果。具体功能同前述实施例中各步骤的具体内容,此处不再赘述。
实施例
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
因此,本申请还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请中任一实施例所述的方法。
进一步地,本申请还提出一种电子设备(或计算设备),图6是本申请实施例六提供的一种电子设备的结构示意图。包括存储器412,处理器411,输入设备413,输出设备414,以及存储在存储器412上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请任一实施例所述的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种离线安装文件的校验方法,其特征在于,所述方法包括:
在离线安装文件中,包含按照预设的字段位置填充的文件名称、校验码信息和安装码;
通过运行自检程序,按照预设的字段位置读取所述离线安装文件的文件名称、校验码信息以及安装码;其中,所述自检程序包含在所述离线安装文件中,且所述自检程序位于离线安装文件的开头位置,执行该文件时首先运行所述自检程序;
根据所述文件名称对所述离线安装文件的本地文件名属性进行校验;和/或,根据所述校验码信息对所述安装码进行校验;
若校验一致,则确定所述离线安装文件通过校验,并执行所述安装码。
2.根据权利要求1所述的方法,其特征在于,根据所述校验码信息对所述安装码进行校验,包括:
通过运行所述自检程序,对所述安装码进行计算,生成所述安装码的实际校验码;
对所述校验码信息与所述实际校验码进行一致性校验。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
运行自检程序时,所述自检程序首先获取所述预设的字段位置信息;
或者,所述自检程序中包含所述预设的字段位置信息。
4.根据权利要求2所述的方法,其特征在于,运行所述自检程序时,所述自检程序首先获取校验码生成算法;
或者,所述自检程序中包含所述校验码生成算法。
5.根据权利要求1~4任意一项所述的方法,其特征在于,
在根据所述文件名称对所述离线安装文件的本地文件名属性进行校验之后,若校验不一致,则确定文件命名错误,并生成文件命名错误的第一错误信息;
在根据所述校验码信息对所述安装码进行校验之后,若校验不一致,则确定所述安装码错误,并生成第二错误信息。
6.根据权利要求1~4任意一项所述的方法,其特征在于,在通过运行所述自检程序生成所述离线安装文件的安装码之后,所述方法还包括:
创建临时文件;
将所述安装码存储至所述临时文件中。
7.一种离线安装文件的生成方法,其特征在于,所述方法包括:
确定安装码对应的文件名称;
计算所述安装码对应的校验码信息;
新建封装文件,并将自检程序代码或自检程序引擎、所述文件名称、所述校验码信息以及所述安装码按照预设的字段位置填充至封装文件中,以生成离线安装文件;其中,所述自检程序包含在所述离线安装文件中,且所述自检程序位于离线安装文件的开头位置,执行该文件时首先运行所述自检程序;
所述的自检程序,用于按照所述预设的字段位置读取所述离线安装文件的文件名称、校验码信息以及安装码;还用于根据所述文件名称对所述离线安装文件的本地文件名属性进行校验,和/或,根据所述校验码信息对所述安装码进行校验。
8.根据权利要求7所述的方法,其特征在于,还包括:
确定由安装码生成校验码信息的校验码生成算法,并将所述校验码生成算法写入到所述自检程序中。
9.根据权利要求7所述的方法,其特征在于,还包括:
确定生成所述预设的字段位置的加密算法,并将所述加密算法写入到所述自检程序中。
10.根据权利要求7~9任意一项所述的方法,其特征在于,在生成离线安装文件之后,所述方法还包括:
根据所述文件名称,对所述离线安装文件进行命名,生成由预设字段与文件名称结合而成的离线安装文件的本地文件名属性。
11.一种离线安装文件的校验装置,用于实现权利要求1~6任意一项所述方法,其特征在于,包括:
解封模块,用于获取离线安装文件,并对所述离线安装文件进行解封装,获取自检程序;
自检模块,用于通过运行所述自检程序读取所述离线安装文件的文件名称、校验码信息以及安装码;其中,所述自检程序包含在所述离线安装文件中,且所述自检程序位于离线安装文件的开头位置,执行该文件时首先运行所述自检程序;
第一校验模块,用于根据所述文件名称对所述离线安装文件的本地文件名属性进行校验;
结果确定模块,用于若校验一致,则确定文件命名符合标准;
第二校验模块,用于根据所述校验码信息对所述安装码进行校验;
更新模块,用于若校验一致,则确定所述离线安装文件通过校验,并执行所述安装码。
12.一种离线安装文件的生成装置,用于实现权利要求7~10任意一项所述方法,其特征在于,包括:
名称确定模块,用于确定安装码对应的文件名称;
计算模块,用于计算所述安装码对应的校验码信息;
封装模块,用于新建封装文件,并将自检程序代码或自检程序引擎、所述文件名称、所述校验码信息以及所述安装码按照预设的字段位置填充至封装文件中,以生成离线安装文件;其中,所述自检程序包含在所述离线安装文件中,且所述自检程序位于离线安装文件的开头位置,执行该文件时首先运行所述自检程序。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的离线安装文件的校验方法,或者,实现如权利要求7~10任一所述的离线安装文件的生成方法。
14.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一所述的离线安装文件的校验方法,或者,实现如权利要求7~10任一所述的离线安装文件的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211486692.6A CN115544521B (zh) | 2022-11-25 | 2022-11-25 | 一种离线安装文件的校验和生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211486692.6A CN115544521B (zh) | 2022-11-25 | 2022-11-25 | 一种离线安装文件的校验和生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115544521A CN115544521A (zh) | 2022-12-30 |
CN115544521B true CN115544521B (zh) | 2023-03-03 |
Family
ID=84720355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211486692.6A Active CN115544521B (zh) | 2022-11-25 | 2022-11-25 | 一种离线安装文件的校验和生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115544521B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487888A (zh) * | 2015-11-26 | 2016-04-13 | 武汉光迅科技股份有限公司 | 一种生成在系统升级和/或在应用升级的升级文件的方法 |
CN109491695A (zh) * | 2018-10-19 | 2019-03-19 | 华南理工大学 | 一种集成安卓应用的增量更新方法 |
CN110932891A (zh) * | 2019-11-21 | 2020-03-27 | 广州邦讯信息系统有限公司 | 防出错ota升级方法、装置、计算机设备及存储介质 |
CN114417402A (zh) * | 2021-12-29 | 2022-04-29 | 泰斗微电子科技有限公司 | 升级文件的生成方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799662B2 (en) * | 2012-07-27 | 2014-08-05 | Adobe Systems Incorporated | Method and apparatus for validating the integrity of installer files prior to installation |
US11641327B2 (en) * | 2020-10-19 | 2023-05-02 | Microsoft Technology Licensing, Llc | Data consistency and integrity for one-way connected systems |
-
2022
- 2022-11-25 CN CN202211486692.6A patent/CN115544521B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487888A (zh) * | 2015-11-26 | 2016-04-13 | 武汉光迅科技股份有限公司 | 一种生成在系统升级和/或在应用升级的升级文件的方法 |
CN109491695A (zh) * | 2018-10-19 | 2019-03-19 | 华南理工大学 | 一种集成安卓应用的增量更新方法 |
CN110932891A (zh) * | 2019-11-21 | 2020-03-27 | 广州邦讯信息系统有限公司 | 防出错ota升级方法、装置、计算机设备及存储介质 |
CN114417402A (zh) * | 2021-12-29 | 2022-04-29 | 泰斗微电子科技有限公司 | 升级文件的生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115544521A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107924443B (zh) | 用于过程控制的控制装置的固件升级方法及其系统 | |
CN108399083B (zh) | 一种系统部署方法、装置、电子设备和存储介质 | |
CN108196878B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
US9027014B2 (en) | Updating firmware compatibility data | |
US20040181790A1 (en) | System and method for maintaining installed software compliance with build standards | |
CN104375870A (zh) | 自助终端软件远程升级方法和系统,及升级包制作方法 | |
US20030051235A1 (en) | Method and apparatus for verifying and analyzing computer software installation | |
US8539200B2 (en) | OS-mediated launch of OS-independent application | |
CN105389187B (zh) | 一种系统更新的方法 | |
WO2011101423A1 (en) | Application runtime expert for deployment of an application on multiple computer systems | |
US10866803B2 (en) | Generating interaction libraries | |
US20170262263A1 (en) | Process and system for the generation of an operating program in the form of a mobile application that is capable of operating on a mobile device | |
CN113687858B (zh) | 配置文件的检查方法、装置、电子设备及存储介质 | |
CN107479927A (zh) | 融合型一体机的固件升级方法及装置 | |
CN115544521B (zh) | 一种离线安装文件的校验和生成方法及装置 | |
CN105700900A (zh) | 一种优化无线局域网功能的方法及装置 | |
EP3125111B1 (en) | Software deployment in an aggregated end user system | |
EP3346642A1 (en) | Method and device for managing network element model | |
CN111338644A (zh) | 任务脚本部署方法及系统 | |
CN116643761A (zh) | 一种定制化镜像制作及部署方法、装置、终端及介质 | |
CN114924772B (zh) | 一种算法包的更新方法及设备 | |
CN108833128A (zh) | 一种设备更新的方法 | |
CN116185401A (zh) | 软件开发工具包的集成方法及装置、非易失性存储介质 | |
CN109428936B (zh) | App的升级方法、装置、系统、电子设备及存储介质 | |
CN113157329A (zh) | 启动应用的方法、系统、服务器和存储介质 |
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 |