CN112287334B - 自定义库处理方法、装置及*** - Google Patents
自定义库处理方法、装置及*** Download PDFInfo
- Publication number
- CN112287334B CN112287334B CN202011230952.4A CN202011230952A CN112287334B CN 112287334 B CN112287334 B CN 112287334B CN 202011230952 A CN202011230952 A CN 202011230952A CN 112287334 B CN112287334 B CN 112287334B
- Authority
- CN
- China
- Prior art keywords
- information
- library
- unit
- custom
- platform
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 86
- 238000012795 verification Methods 0.000 claims abstract description 77
- 238000011161 development Methods 0.000 claims abstract description 52
- 230000006870 function Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 29
- 238000013475 authorization Methods 0.000 claims description 17
- 230000008676 import Effects 0.000 claims description 12
- 238000000605 extraction Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 11
- 238000004806 packaging method and process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- 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/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种自定义库处理方法、装置及***,该方法分别应用于开发平台和组态平台。在开发平台中,当用户完成各个算法单元的编译时,检验各个算法单元的合法性,若合法则导出自定义库,对库信息及各个单元信息签名获得校验值后,将库信息、各个单元信息及校验值保存到信息文件并加密,将文件发送至存储空间。在组态平台中,当用户要调用自定义库,从存储空间获取文件并解密后,校验库信息及单元信息,若校验通过,且能在组态平台导入该自定义库,且用户拥有调用自定义库的权限,则导入自定义库。应用该方法,能够对自定义库对应的文件进行加密和签名,防止文件在传输过程被篡改,并在调用该文件时还需要校验该文件,避免导入被篡改自定义库。
Description
技术领域
本发明涉及工业控制技术领域,特别是涉及一种自定义库处理方法、装置及***。
背景技术
在工业控制***中,将可专用于特定行业或某个特定行业可重用的功能块或函数封装为自定义库,即,将一些实现特定逻辑的和算法的功能块集中在同一个自定义库中,由该自定义库中提供各个功能块或函数实现一些特定功能的代码逻辑。在各个工控行业需要开发专用的控制***软件时,可以应用对应行业的自定义库中的功能块或函数实现软件开发过程,最大程度实现算法复用,减少组态平台实时的工作量。
在现有技术对自定义库进行封装的过程中,需要将自定义库相关文件做成安装包安装到计算机中,最后再将自定义库导入组态平台。但是在调用现有技术的自定义库进行算法开发和设计的过程中,自定义库中的功能块或函数容易遭受外部攻击,导致功能块或函数中的内容被篡改,从而影响功能块或函数对应的算法的使用。
发明内容
有鉴于此,本发明提供一种自定义库处理方法、装置及***,通过该方法,可以避免自定义库中的功能块或函数被篡改。
一种自定义库处理方法,所述方法应用于开发平台,所述方法包括:
当用户在所述开发平台上完成对各个算法单元的编译时,检验各个所述算法单元的合法性,各个所述算法单元为功能块或函数;
当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并提取所述自定义库的库信息,及所述自定义库中各个所述算法单元对应的单元信息;
调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的校验值;
生成所述自定义库对应的自定义库文件,并将所述库信息、各个所述单元信息及所述校验值保存至所述自定义库文件中;
调用预先设置的第二算法对所述自定义库文件进行加密,获得已加密文件,并将所述已加密文件发送至预先设置的存储空间,以使预先设置的组态平台通过所述存储空间获取所述已加密文件。
上述的方法,可选的,所述检验各个所述算法单元的合法性,包括:
确定每个所述算法单元对应的组态;每个所述组态为其对应的算法单元的单元内容;
判断各个所述组态是否符合预先设定的编译准则;
若各个所述组态符合预先设定的编译准则,则确定各个所述算法单元合法;
若存在任意一个组态不符合预先设定的编译准则,则确定各个所述算法单元非合法。
一种自定义库处理装置,所述装置应用于开发平台,所述装置包括:
检验单元,用于当用户在所述开发平台上完成对各个算法单元的编辑时,检验各个所述算法单元的合法性,各个所述算法单元为功能块或函数;
提取单元,用于当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并提取所述自定义库的库信息,及所述自定义库中各个所述算法单元对应的单元信息;
签名单元,用于调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的校验值;
保存单元,用于生成所述自定义库对应的自定义库文件,并将所述库信息、各个所述单元信息及所述校验值保存至所述自定义库文件中;
加密单元,用于调用预先设置的第二算法对所述自定义库文件进行加密,获得已加密文件,并将所述已加密文件发送至预先设置的存储空间,以使预先设置的组态平台通过所述存储空间获取所述已加密文件。
一种自定义库处理方法,所述方法应用于组态平台,所述方法包括:
当用户需要调用自定义库时,获取存储空间中所述自定义库对应的已加密文件;
对所述已加密文件进行解密,获得所述已加密文件中的库信息、校验值及各个单元信息;
基于所述校验值,校验所述库信息及各个所述单元信息是否合法;
若所述库信息及各个所述单元信息合法,则判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;
若所述用户拥有在所述组态平台调用所述自定义库的权限,判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库;
若能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,则基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台的平台框架,以使所述用户通过所述组态平台调用所述自定义库。
上述的方法,可选的,所述基于所述校验值,校验所述库信息及各个所述单元信息是否合法,包括:
调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的验证值;
判断所述验证值与所述校验值是否一致;
若所述验证值与所述校验值一致,则确定所述所述库信息及各个所述单元信息合法;
若所述验证值与所述校验值不一致,则确定所述库信息及各个所述单元信息非合法。
上述的方法,可选的,所述判断所述用户是否拥有在所述组态平台调用所述自定义库的权限,包括:
获取所述用户在所述组态平台上传的用户权限信息;
获取所述库信息中包含的在自定义所述库信息时设定的用户授权信息;
判断所述用户权限信息及所述用户授权信息是否一致;
若所述用户权限信息及所述用户授权信息一致,则确定所述用户拥有在所述组态平台调用所述自定义库的权限;
若所述用户权限信息及所述用户授权信息不一致,则确定所述用户不拥有在所述组态平台调用所述自定义库的权限。
上述的方法,可选的,所述判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,包括:
检验所述库信息及各个所述单元信息应用在所述组态平台所属的***中是否有效;
若所述库信息及各个所述单元信息应用在所述组态平台所属的***中有效,则所述库信息及各个所述单元信息对应的自定义库能在所述组态平台的平台框架中导入;
若所述库信息或各个所述单元信息应用在所述组态平台所属的***中无效,则所述库信息及各个所述单元信息对应的自定义库不能在所述组态平台的平台框架中导入。
上述的方法,可选的,所述基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台,包括:
将所述库信息及各个所述单元信息加入至所述组态平台的平台框架中,生成所述库信息及各个所述单元信息对应的自定义库;
对所述自定义库进行加密和签名,并生成所述自定义库对应的单元列表,所述单元列表中包含各个所述单元信息,以使所述用户通过所述单元列表中的各个单元信息调用所述自定义库。
一种自定义库处理装置,所述装置应用于组态平台,所述装置包括:
获取单元,用于当用户需要调用自定义库时,获取存储空间中所述自定义库对应的已加密文件;
解密单元,用于对所述已加密文件进行解密,获得所述已加密文件中的库信息、单元信息及校验值;
校验单元,用于基于所述校验值,校验所述库信息及各个所述单元信息是否合法;
第一判断单元,用于所述库信息及各个所述单元信息合法,则判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;
第二判断单元,用于若所述用户拥有在所述组态平台调用所述自定义库的权限,判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库;
导入单元,用于若能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,则基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台的平台框架,以使所述用户通过所述组态平台调用所述自定义库。
一种自定义库处理***,包括:
开发平台、存储空间及组态平台;
所述开发平台包括预编译模块、导出模块及多个算法单元;
所述预编译模块,用于当用户完成对各个所述算法单元的编译时,检验各个所述算法单元的合法性;
所述导出模块,用于当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并在提取自定义库的库信息及各个算法单元的单元信息后,对库信息及单元信息进行签名获得校验值;将库信息、单元信息及校验值保存至所述自定义库对应的库文件中,对库文件进行加密,将已加密文件发送至所述存储空间;
所述组态平台包括导入模块;
所述导入模块,用于获取所述存储空间中的已加密文件,并对所述已加密文件进行进行解密,获得已加密文件中的校验值、库信息、单元信息;基于校验值对所述库信息及各个所述单元信息进行校验,并判断是否能在组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,及判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;若能在组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,且所述用户拥有在所述组态平台调用所述自定义库的权限,则将自定义库导入组态平台的平台框架中;
所述存储空间,用于接收所述开发平台发送的已加密文件,并对已加密文件进行保存。
与现有技术相比,本发明包括以下优点:
本发明提供了一种自定义库处理方法,该方法分别应用于开发平台和组态平台。在开发平台中,当用户完成对各个算法单元的编译时,需检验各个算法单元的合法性,并在确定合法时导出自定义库,对自定义库的库信息及各个算法单元的各个单元信息签名获得校验值后,将库信息、各个单元信息及校验值保存到信息文件,对信息文件进行加密,并将其发送至存储空间。在组态平台中,当用户要调用自定义库,则从存储空间获取已加密文件进行解密后,通过校验值校验已加密文件中的库信息及单元信息,并在校验通过时,确定是否能在组态平台中导入自定义库,并确定用户是否调用该自定义库的权限;若能在组态平台导入该自定义库,且用户拥有调用自定义库的权限,则导入自定义库。应用本发明提供的方法,当用户完成编辑算法单元时,能够导出自定义库,并对其对应的文件进行加密和签名,以防止文件在传输过程被篡改,用户需要调用自定义库时,还需要校验该自定义库对应的已加密文件,避免该文件被篡改,导致各个算法单元在应用时出现错误。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的应用于开发平台的一种自定义库处理方法的方法流程图;
图2为本发明实施例提供的应用于开发平台的一种自定义库处理方法的又一方法流程图;
图3为本发明实施例提供的应用于开发平台的一种自定义库处理装置的装置结构图;
图4为本发明实施例提供的应用于组态平台的一种自定义库处理方法的方法流程图;
图5为本发明实施例提供的应用于组态平台的一种自定义库处理装置的装置结构图;
图6为本发明实施例提供的一种自定义库处理***的***结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本发明实施例提供了一种自定义库处理方法,该方法可以应用在多种***平台,其执行主体可以为开发平台,其中,开发平台是用户对算法单元进行编辑的编程模块,同时可以实现对算法单元的增、删、该等操作的模块。所述方法的方法流程图如图1所示,具体包括:
S101:当用户在所述开发平台上完成对各个算法单元的编译时,检验各个所述算法单元的合法性,各个所述算法单元为功能块或函数;
在本发明实施例中,用户可以通过开发平台对算法单元进行增、删或改等操作,通过对各个算法单元的编译,检查算法单元内容的正确性和合法性。
S102:当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并提取所述自定义库的库信息,及所述自定义库中各个所述算法单元对应的单元信息;
在本发明实施例中,该自定义库由该用户进行自定义,在检验各个算法单元合法后,将各个算法单元合并到该自定义库中再进行导出。导出的自定义库中包含库信息及各个算法单元的单元信息。
需要说明的是,该库信息中包含自定义库的库名称、版本、用户信息、用户授权信息等信息,各个信息均由用户进行自定义。单元信息中包含功能块或函数的名称、参数定义、组态逻辑等信息,开发平台根据用户所编译的算法单元,自动收集每个算法单元对应的单元信息。
S103:调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的校验值;
在本发明实施例中,该第一算法可以是消息摘要算法MD5,通过MD5对库信息及单元信息摘要计算,即对该库信息及单元信息进行签名,生成对应的校验值,该校验值即为MD5值。
S104:生成所述自定义库对应的自定义库文件,并将所述库信息、各个所述单元信息及所述校验值保存至所述自定义库文件中;
在本发明实施例中,在导出自定义库后,需对该自定义库进行封装通过自定义库对应的自定义库文件对单元信息、库信息及该校验值进行保存,以通过该自定义库实现对自定义库的封装。
S105:调用预先设置的第二算法对所述自定义库文件进行加密,获得已加密文件,并将所述已加密文件发送至预先设置的存储空间,以使预先设置的组态平台通过所述存储空间获取所述已加密文件。
在本发明实施例中,应用第二加密算法对自定义库文件进行加密,以防止在将自定义库文件传输至组态平台的过程中自定义库文件中的单元信息及库信息被篡改。在加密自定义库文件获得已加密文件后,将该已加密文件存储发送至存储空间中进行存储,当用户通过组态平台需要导入该自定义库时,再从存储空间获取该加密文件,以实现自定义库的调用过程。
需要说明的是,第二算法可以是高级加密标准AES,通过AES对自定义库文件进行加密,以防文件中的信息被篡改。该存储空间可以是对文件进行保存和转发的存储设备或网络。
本发明实施例提供的自定义库处理方法中,在开发平台中,用户可以通过开发平台对功能块或函数进行编译。其中,功能块是可赋值参数并具有静态变量的POU,函数是可赋值参数但没有静态变量的POU。在用户完成编译各个算法单元后,需要检验其合法性,具体可以是检验各个算法单元是否满足具体的编译要求。若确定各个算法单元均合法,则导出自定义库,获取自定义库的库信息及各个算法单元的各个单元信息。调用第一算法对库信息及单元信息进行签名,获得校验值,并将库信息、单元信息及校验值保存至自定义库对应的自定义库文件中,对文件进行加密,获得已加密文件发送至存储空间中,用户在组态平台需要导入自定义库时,可以通过存储空间获取该加密文件,以实现自定义库的调用和导入过程。
基于上述实施例提供的方法,以算法单元为功能块为例,在开发平台中对自定义库处理的过程进行详细的说明,具体如下:
当用户在开发平台编译多个功能块时,开发平台为用户提供对功能块进行编译的页面。当用户在页面上选择完成编译时,开发平台对各个功能块进行合法性检验,以确定各个功能块是否符合设定的编译要求。在各个功能块合法时,开发平台将各个功能块并入用户自定义的自定义库中,并将自定义库导出,获取自定义库的库信息以及各个功能块对应的各个功能块信息。在对库信息及各个功能块信息进行签名获得对应的校验值后,将库信息、校验值及各个功能块信息存入自定义库对应的自定义库文件中,并对自定义库文件进行加密,以实现对自定义库的封装。将已加密的自定义库文件发送到存储空间,用户需要调用该已加密的自定义库文件时,可以通过组态平台从存储空间获取该已加密的自定义库文件。
应用本发明提供的方法,在开发平台对自定义库进行封装处理的过程中,可以对需要封装的信息进行签名,并对相关文件进行加密,以保证文件在传输过程的安全性。
本发明实施例提供的方法中,基于上述S101的内容,检验各个算法单元的合法性的过程如图2所示,具体可以包括:
S201:确定每个所述算法单元对应的组态;每个所述组态为其对应的算法单元的单元内容;
在本发明实施例中,每个算法单元对应的组态为算法单元的单元内容,每个算法单元中的组态由用户按照设定的语法或语义进行自定义编译。
S202:判断各个所述组态是否符合预先设定的编译准则;
在本发明实施例中,该编译准则可以是可编程逻辑控制器标准IEC61131-3,该标准规范了可编后才能控制器的编程语言及其基本元素。因此,用户在对各个算法单元进行编译时,需要按照IEC61131-3要求进行编译,避免执行各个算法单元时出现执行错误,因此,在用户完成编译后,需要检验每个算法单元对应的组态是否符合该编译准则,以确定各个算法单元的正确性和合法性。
S203:若各个所述组态符合预先设定的编译准则,则确定各个所述算法单元合法;
在本发明实施例中,若每个算法单元对应的组态符合编译准则,则各个算法单元合法,可以实现对自定义库的封装处理。
S204:若存在任意一个组态不符合预先设定的编译准则,则确定各个所述算法单元并非合法。
在本发明实施例中,若任意一个算法单元对应的组态不符合编译准则,则各个算法单元非合法,不能对自定义库进行封装处理。
本发明实施例提供的自定义库处理方法中,在开发平台中,需要对用户已编译的各个算法单元的组态进行检验,具体检验各个组态是否符合编译准则,若符合则可以继续执行自定义库对应的封装处理过程,若不符合,则无法对自定义库进行封装处理。
具体的,判断各个组态是否符合预先设定的编译准则,具体过程是检查功能块或函数的组态的规则是否符合IEC61131-3要求,对组态进行语法分析、语义分析,若存在违规项则进行登记并提示用户重新进行编译。
应用本发明提供的方法,对各个算法单元进行合法性检验可以保证各个算法单元在应用时不会出现错误。
与图1所述的方法相对应,本发明实施例还提供了一种自定义库处理装置,用于对图1中方法的具体实现,本发明实施例提供的自定义库处理装置可以应用开发平台中,其结构示意图如图3所示,具体包括:
检验单元301,用于当用户在所述开发平台上完成对各个算法单元的编辑时,检验各个所述算法单元的合法性,各个所述算法单元为功能块或函数;
提取单元302,用于当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并提取所述自定义库的库信息,及所述自定义库中各个所述算法单元对应的单元信息;
签名单元303,用于调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的校验值;
保存单元304,用于生成所述自定义库对应的自定义库文件,并将所述库信息、各个所述单元信息及所述校验值保存至所述自定义库文件中;
加密单元305,用于调用预先设置的第二算法对所述自定义库文件进行加密,获得已加密文件,并将所述已加密文件发送至预先设置的存储空间,以使预先设置的组态平台通过所述存储空间获取所述已加密文件。
本发明实施例提供的装置中,用户在开发平台完成各个算法单元的编译后,检验单元检验各个算法单元是否满足具体的编译要求。若确定各个算法单元均合法,则提取单元导出自定义库,获取自定义库的库信息及各个算法单元的各个单元信息。签名单元调用第一算法对库信息及单元信息进行签名,获得校验值,并将库信息、单元信息及校验值保存至自定义库对应的自定义库文件中,加密单元对文件进行加密,获得已加密文件发送至存储空间中,用户在组态平台需要导入自定义库时,可以通过存储空间获取该加密文件,以实现自定义库的调用和导入过程。
应用本发明提供的装置,在开发平台对自定义库进行封装处理的过程中,可以对需要封装的信息进行签名,并对相关文件进行加密,以保证文件在传输过程的安全性。
本发明实施例提供的装置中,所述检验单元,包括:
第一判断子单元,用于确定每个所述算法单元对应的组态;每个所述组态为其对应的算法单元的单元内容;判断各个所述组态是否符合预先设定的编译准则;若各个所述组态符合预先设定的编译准则,则确定各个所述算法单元合法;若存在任意一个组态不符合预先设定的编译准则,则确定各个所述算法单元非合法。
以上本发明实施例公开的自定义库处理装置中各个单元的具体工作过程,可参见本发明上述实施例公开的自定义库处理方法中的对应内容,这里不再进行赘述。
本发明实施例提供了一种自定义库处理方法,该方法可以应用在多种***平台,其执行主体可以为组态平台,其中,组态平台用于实现对自定义库的调用和导入,用户在工控行业中需要调用其对应的自定义库完成对应的逻辑处理时,可以通过组态平台进行调用。所述方法的方法流程图如图4所示,具体包括:
S401:当用户需要调用自定义库时,获取存储空间中所述自定义库对应的已加密文件;
在本发明实施例中,当用户需要调用自定义库时,需要先将自定义库导入至组态平台的平台框架当中,该组态平台从存储空间中获取已存储的该自定义库对应的已加密文件,以通过已加密文件,实现对自定义库的调用。
S402:对所述已加密文件进行解密,获得所述已加密文件中的库信息、校验值及各个单元信息;
在本发明实施例中,由于该已加密文件在开发平台进行封装的过程中已进行加密,组态平台需要按照原加密方式对已加密文件进行解密,以获得该已加密文件中保存的库信息、单元信息及校验值。
S403:基于所述校验值,校验所述库信息及各个所述单元信息是否合法;
在本发明实施例中,该已加密文件进行传输的过程中,已加密文件中的库信息和各个单元信息可以会被非法用户进行篡改,可通过该校验值校验库信息及各个单元信息的合法性。
S404:若所述库信息及各个所述单元信息合法,则判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;
在本发明实施例中,在确定库信息及各个单元信息合法的条件下,则判断需要调用该自定义库的用户是否拥有调用的权限。
需要说明的是,自定义库在设置的时候,是由设置该自定义库的用户进行自定义创建的,在创建的过程中,只有创建者拥有调用该自定义库的权限。因此,若存在用户需要调用自定义库,需要先判断其是否拥有调用的权限,以确定是否需要在组态平台中导入自定义库。
S405:若所述用户拥有在所述组态平台调用所述自定义库的权限,判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库;
在本发明实施例中,若用户拥有调用该自定义库的权限,需要确定能否在组态平台的平台框架中导入该自定义库。
可以理解是,能否导入自定义库决定了用户是否可以对该自定义库进行调用,即,该自定义库是否能够在组态平台中有效应用。
S406:若能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,则基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台的平台框架,以使所述用户通过所述组态平台调用所述自定义库。
在本发明实施例中,若能在组态平台的平台框架中导入该自定义库,则表征可以在组态平台的平台框架中导入该自定义库,以使用户对该自定义库的调用。
本发明实施例提供的自定义库处理方法中,在组态平台中,当用户需要调用自定义库时,组态平台从存储空间中获取原先已在开发平台中进行封装处理的已加密文件。对该已加密文件解密后,获得已加密文件中的库信息、校验值及各个单元信息,通过校验值校验库信息和各个单元信息,避免已加密文件在传输过程中被篡改。在确定库信息及各个单元信息合法后,需要判断该自定义库是否能够导入该组态平台的平台框架中,若能够导入,则需要再次判断当前需要调用自定义库的用户是否有调用的权限。若该用户拥有调用该自定义库的权限,则基于库信息及各个单元信息在组态平台中的平台框架中导入该自定义库,以使该用户通过组态平台调用自定义库。
应用本发明实施例提供的方法,在组态平台中,若用户需要调用自定义库,组态平台需要先经过解密、校验、判断等一系列操作后确定是否能够在组态平台中导入自定义库,以避免自定义库对应的已加密文件在传输过程中信息被篡改,同时避免存在未授权用户随意调用自定义库,导致信息泄露。
本发明实施例提供的方法中,基于上述S403的内容,对库信息及各个单元信息进行合法性校验过程,具体可以包括:
调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的验证值;
判断所述验证值与所述校验值是否一致;
若所述验证值与所述校验值一致,则确定所述所述库信息及各个所述单元信息合法;
若所述验证值与所述校验值不一致,则确定所述库信息及各个所述单元信息非合法。
本发明实施例提供的自定义库处理方法中,组态平台在对已加密文件进行解密后,获得该文件中原先保存的校验值、库信息及各个单元信息。通过调用第一算法对库信息及各个单元信息进行签名,以获得验证值。其中,该第一算法是MD5,开发平台与组态平台所采用的对库信息及单元信息进行签名的算法一致,该组态平台按照开发平台对库信息及各个单元信息进行计算的过程再次进行签名计算,获得验证值,将验证值和校验值进行比对可以得知库信息和单元信息保存在已加密文件进行传输的过程中是否被篡改。若验证值与校验值一致,则表征未被篡改,该加密文件内的库信息及各个单元信息均合法,反之则表征库信息或单元信息可能被篡改,库信息及各个单元信息非合法。若库信息或单元信息被篡改,则无法在组态平台导入自定义库。
应用本发明实施例提供的方法,对库信息及各个单元信息进行合法性校验,避免存在被篡改的库信息或单元信息,导致自定义库导入失败。
本发明实施例提供的方法中,基于上述S404的内容判断所述用户是否拥有在所述组态平台调用所述自定义库的权限,具体可以包括:
获取所述用户在所述组态平台上传的用户权限信息;
获取所述库信息中包含的在自定义所述库信息时设定的用户授权信息;
判断所述用户权限信息及所述用户授权信息是否一致;
若所述用户权限信息及所述用户授权信息一致,则确定所述用户拥有在所述组态平台调用所述自定义库的权限;
若所述用户权限信息及所述用户授权信息不一致,则确定所述用户不拥有在所述组态平台调用所述自定义库的权限。
本发明实施例提供的自定义库处理方法中,用户在开发平台中自定义库信息时,会将用户的用户授权信息自定义入自定义库的库信息中,当在开发平台对自定义库进行封装处理时,将该用户授权信息连同库信息一起保存至自定义库文件中,当在组态平台中对已加密文件进行解密后,可以从库信息中获取用户授权信息。在组态平台中,当用户需要调用自定义库时,需要上传自己的权限信息,组态平台可以根据用户上传的用户权限信息与库信息中的用户授权信息进行比对,若一致则证明需要调用自定义库的用户用于调用的权限,若不一致,则组态平台将不会导入自定义库。
应用本发明实施例提供的方法,可以通过用户授权的方式,由用户单独对自定义库进行操作,保证自定义库的私密性。
本发明实施例提供的方法中,基于上述S405的内容,判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,具体可以包括:
检验所述库信息及各个所述单元信息应用在所述组态平台所属的***中是否有效;
若所述库信息及各个所述单元信息应用在所述组态平台所属的***中有效,则所述库信息及各个所述单元信息对应的自定义库能在所述组态平台的平台框架中导入;
若所述库信息或各个所述单元信息应用在所述组态平台所属的***中无效,则所述库信息及各个所述单元信息对应的自定义库不能在所述组态平台的平台框架中导入。
本发明实施例提供的自定义库处理方法中,在确定自定义库是否在组态平台的平台框架导入的过程中,需要检验库信息及各个单元信息是否能够有效应用在该组态平台所属的***中,其中,检验库信息应用在组态平台所属的***是否有效的方式是确定***中所包含的自定义库的数量是否已经超限、自定义库的库容量是否超限,该自定义库是否与***中已存在的库有冲突,如库名称重名等。若该组态平台所属的***中的库的数量未超限,该自定义库容量未超限,且该自定义库与***中已存在的库无冲突,则表征库信息在***中有效。另外,检验单元信息应用在组态平台所属的***是否有效的方式是每个单元信息对应的算法单元是否与***中已经存在的算法单元有冲突,如名字相同、功能相同等,每个算法单元是否与其他库兼容等。若各个算法单元均与其他算法单元不冲突且与其他库兼容,则表征单元信息在***中有效。库信息与各个单元信息在***中均有效时,则组态平台可以导入自定义库,反之则无法导入自定义库。
应用基本发明提供的方法,可以实现多个行业算法单元的兼容性。
本发明实施例提供的方法中,基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台,具体可以包括:
将所述库信息及各个所述单元信息加入至所述组态平台的平台框架中,生成所述库信息及各个所述单元信息对应的自定义库;
对所述自定义库进行加密和签名,并生成所述自定义库对应的单元列表,所述单元列表中包含各个所述单元信息,以使所述用户通过所述单元列表中的各个单元信息调用所述自定义库。
本发明实施例提供的自定义库处理方法中,将库信息及各个单元信息加入只平台框架后,组态平台会根据该库信息及组态信息生成对应的自定义库,并对该自定义库进行加密和签名,完成对自定义库的导入,在用户选择开始调用时,再进行解密和解签。其中该加密过程还可以再次应用上述实施例中的第二算法,也可以应用其他的加密算法,该签名过程还可以再次应用上述实施例中的第一算法,也可以应用其他的签名算法。具体的加密和签名的过程可以与上述步骤S103和S104一致,此处将不复赘述。同时,为了能够保证用户调用自定义库的过程中,能够快速找到对应的算法单元,可以生成各个算法单元对应单元列表,用户可以通过单元列表中的各个单元信息调用自定义库的各个算法单元。根据本发明的方法,可以进一步保证各个信息的安全性。
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
与图4所述的方法相对应,本发明实施例还提供了一种自定义库处理装置,用于对图4中方法的具体实现,本发明实施例提供的自定义库处理装置可以应用组态平台中,其结构示意图如图5所示,具体包括:
获取单元501,用于当用户需要调用自定义库时,获取存储空间中所述自定义库对应的已加密文件;
解密单元502,用于对所述已加密文件进行解密,获得所述已加密文件中的库信息、单元信息及校验值;
校验单元503,用于基于所述校验值,校验所述库信息及各个所述单元信息是否合法;
第一判断单元504,用于若所述库信息及各个所述单元信息合法,则判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库;
第二判断单元505,用于若能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;
导入单元506,用于若所述用户拥有在所述组态平台调用所述自定义库的权限,则基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台的平台框架,以使所述用户通过所述组态平台调用所述自定义库。
本发明实施例提供的装置中,在组态平台中,当用户需要调用自定义库时,组态平台从存储空间中获取原先已在开发平台中进行封装处理的已加密文件。对该已加密文件解密后,获得已加密文件中的库信息、校验值及各个单元信息,通过校验值校验库信息和各个单元信息,避免已加密文件在传输过程中被篡改。在确定库信息及各个单元信息合法后,需要判断该自定义库是否能够导入该组态平台的平台框架中,若能够导入,则需要再次判断当前需要调用自定义库的用户是否有调用的权限。若该用户拥有调用该自定义库的权限,则基于库信息及各个单元信息在组态平台中的平台框架中导入该自定义库,以使该用户通过组态平台调用自定义库。
应用本发明实施例提供的方法,在组态平台中,若用户需要调用自定义库,组态平台需要先经过解密、校验、判断等一系列操作后确定是否能够在组态平台中导入自定义库,以避免自定义库对应的已加密文件在传输过程中信息被篡改,同时避免存在未授权用户随意调用自定义库,导致信息泄露。
本发明实施例提供的装置中,所述校验单元503,包括:
第二判断子单元,用于调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的验证值;判断所述验证值与所述校验值是否一致;若所述验证值与所述校验值一致,则确定所述所述库信息及各个所述单元信息合法;若所述验证值与所述校验值不一致,则确定所述库信息及各个所述单元信息非合法。
本发明实施例提供的装置中,所述第一判断单元504,包括:
第三判断子单元,用于获取所述用户在所述组态平台上传的用户权限信息;获取所述库信息中包含的在自定义所述库信息时设定的用户授权信息;判断所述用户权限信息及所述用户授权信息是否一致;若所述用户权限信息及所述用户授权信息一致,则确定所述用户拥有在所述组态平台调用所述自定义库的权限;若所述用户权限信息及所述用户授权信息不一致,则确定所述用户不拥有在所述组态平台调用所述自定义库的权限。
本发明实施例提供的装置中,所述第二判断单元505,包括:
第四判断子单元,用于检验所述库信息及各个所述单元信息应用在所述组态平台所属的***中是否有效;若所述库信息及各个所述单元信息应用在所述组态平台所属的***中有效,则所述库信息及各个所述单元信息对应的自定义库能在所述组态平台的平台框架中导入;若所述库信息或各个所述单元信息应用在所述组态平台所属的***中无效,则所述库信息及各个所述单元信息对应的自定义库不能在所述组态平台的平台框架中导入。
本发明实施例提供的装置中,所述导入单元506,包括:
导入子单元,用于将所述库信息及各个所述单元信息加入至所述组态平台的平台框架中,生成所述库信息及各个所述单元信息对应的自定义库;对所述自定义库进行加密和签名,并生成所述自定义库对应的单元列表,所述单元列表中包含各个所述单元信息,以使所述用户通过所述单元列表中的各个单元信息调用所述自定义库。
以上本发明实施例公开应用于组态平台的自定义库处理装置中各个单元的具体工作过程,可参见本发明上述实施例公开的自定义库处理方法中的对应内容,这里不再进行赘述。
本发明还提供了一种自定义库处理***,如图6所示,具体可以包括:
开发平台100、存储空间200及组态平台300;
所述开发平台100包括预编译模块11、导出模块12及多个算法单元13;
所述预编译模块11,用于当用户完成对各个所述算法单元的编译时,检验各个所述算法单元的合法性;
所述导出模块12,用于当各个所述算法单元13合法时,导出各个所述算法单元13对应的自定义库,并在提取自定义库的库信息及各个算法单元13的单元信息后,对库信息及单元信息进行签名获得校验值;将库信息、单元信息及校验值保存至所述自定义库对应的库文件中,对库文件进行加密,将已加密文件发送至所述存储空间200;
所述组态平台300包括导入模块31;
所述导入模块31,用于获取所述存储空间200中的已加密文件,并对所述已加密文件进行进行解密,获得已加密文件中的校验值、库信息、单元信息;基于校验值对所述库信息及各个所述单元信息进行校验,并判断是否能在组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,及判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;若能在组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,且所述用户拥有在所述组态平台调用所述自定义库的权限,则将自定义库导入组态平台的平台框架中;
所述存储空间200,用于接收所述开发平台发送的已加密文件,并对已加密文件进行保存。
本发明提供的***中,在开发平台100中,用户可以通过开发平台100对功能块或函数进行编译。其中,功能块是可赋值参数并具有静态变量的POU,函数是可赋值参数但没有静态变量的POU。在用户完成编译各个算法单元13后,需要检验其合法性,具体可以是检验各个算法单元13是否满足具体的编译要求。若确定各个算法单元13均合法,则导出自定义库,获取自定义库的库信息及各个算法单元13的各个单元信息。调用第一算法对库信息及单元信息进行签名,获得校验值,并将库信息、单元信息及校验值保存至自定义库对应的自定义库文件中,对文件进行加密,获得已加密文件发送至存储空间200中,用户在组态平台300需要导入自定义库时,可以通过存储空间200获取该加密文件,以实现自定义库的调用和导入过程。在组态平台300中,当用户需要调用自定义库时,组态平台300从存储空间200中获取原先已在开发平台100中进行封装处理的已加密文件。对该已加密文件解密后,获得已加密文件中的库信息、校验值及各个单元信息,通过校验值校验库信息和各个单元信息,避免已加密文件在传输过程中被篡改。在确定库信息及各个单元信息合法后,需要判断该自定义库是否能够导入该组态平台的平台框架中,若能够导入,则需要再次判断当前需要调用自定义库的用户是否有调用的权限。若该用户拥有调用该自定义库的权限,则基于库信息及各个单元信息在组态平台300中的平台框架中导入该自定义库,以使该用户通过组态平台300调用自定义库。
应用本发明提供的***,当用户完成编辑算法单元时,能够导出自定义库,并对其对应的文件进行加密和签名,以防止文件在传输过程被篡改,用户需要调用自定义库时,还需要校验该自定义库对应的已加密文件,避免该文件被篡改,导致各个算法单元在应用时出现错误。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种自定义库处理方法,其特征在于,所述方法应用于开发平台,所述方法包括:
当用户在所述开发平台上完成对各个算法单元的编译时,检验各个所述算法单元的合法性,各个所述算法单元为功能块或函数;其中,当算法单元满足编译要求时合法;
当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并提取所述自定义库的库信息,及所述自定义库中各个所述算法单元对应的单元信息;所述单元信息包括功能块或函数的名称、参数定义、以及组态逻辑;
调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的校验值;
生成所述自定义库对应的自定义库文件,并将所述库信息、各个所述单元信息及所述校验值保存至所述自定义库文件中;
调用预先设置的第二算法对所述自定义库文件进行加密,获得已加密文件,并将所述已加密文件发送至预先设置的存储空间,以使预先设置的组态平台通过所述存储空间获取所述已加密文件。
2.根据权利要求1所述的方法,其特征在于,所述检验各个所述算法单元的合法性,包括:
确定每个所述算法单元对应的组态;每个所述组态为其对应的算法单元的单元内容;
判断各个所述组态是否符合预先设定的编译准则;
若各个所述组态符合预先设定的编译准则,则确定各个所述算法单元合法;
若存在任意一个组态不符合预先设定的编译准则,则确定各个所述算法单元非合法。
3.一种自定义库处理装置,其特征在于,所述装置应用于开发平台,所述装置包括:
检验单元,用于当用户在所述开发平台上完成对各个算法单元的编辑时,检验各个所述算法单元的合法性,各个所述算法单元为功能块或函数;其中,当算法单元满足编译要求时合法;
提取单元,用于当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并提取所述自定义库的库信息,及所述自定义库中各个所述算法单元对应的单元信息;所述单元信息包括功能块或函数的名称、参数定义、以及组态逻辑;
签名单元,用于调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的校验值;
保存单元,用于生成所述自定义库对应的自定义库文件,并将所述库信息、各个所述单元信息及所述校验值保存至所述自定义库文件中;
加密单元,用于调用预先设置的第二算法对所述自定义库文件进行加密,获得已加密文件,并将所述已加密文件发送至预先设置的存储空间,以使预先设置的组态平台通过所述存储空间获取所述已加密文件。
4.一种自定义库处理方法,其特征在于,所述方法应用于组态平台,所述方法包括:
当用户需要调用自定义库时,获取存储空间中所述自定义库对应的已加密文件;
对所述已加密文件进行解密,获得所述已加密文件中的库信息、校验值及各个单元信息;所述单元信息包括功能块或函数的名称、参数定义、以及组态逻辑;
基于所述校验值,校验所述库信息及各个所述单元信息是否合法;
若所述库信息及各个所述单元信息合法,则判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;
若所述用户拥有在所述组态平台调用所述自定义库的权限,判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库;
若能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,则基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台的平台框架,以使所述用户通过所述组态平台调用所述自定义库;
其中,所述基于所述校验值,校验所述库信息及各个所述单元信息是否合法,包括:
调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的验证值;
判断所述验证值与所述校验值是否一致;
若所述验证值与所述校验值一致,则确定所述库信息及各个所述单元信息合法;
若所述验证值与所述校验值不一致,则确定所述库信息及各个所述单元信息非合法;
其中,所述基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台,包括:
将所述库信息及各个所述单元信息加入至所述组态平台的平台框架中,生成所述库信息及各个所述单元信息对应的自定义库;
对所述自定义库进行加密和签名,并生成所述自定义库对应的单元列表,所述单元列表中包含各个所述单元信息,以使所述用户通过所述单元列表中的各个单元信息调用所述自定义库。
5.根据权利要求4所述的方法,其特征在于,所述判断所述用户是否拥有在所述组态平台调用所述自定义库的权限,包括:
获取所述用户在所述组态平台上传的用户权限信息;
获取所述库信息中包含的在自定义所述库信息时设定的用户授权信息;
判断所述用户权限信息及所述用户授权信息是否一致;
若所述用户权限信息及所述用户授权信息一致,则确定所述用户拥有在所述组态平台调用所述自定义库的权限;
若所述用户权限信息及所述用户授权信息不一致,则确定所述用户不拥有在所述组态平台调用所述自定义库的权限。
6.根据权利要求4所述的方法,其特征在于,所述判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,包括:
检验所述库信息及各个所述单元信息应用在所述组态平台所属的***中是否有效;
若所述库信息及各个所述单元信息应用在所述组态平台所属的***中有效,则所述库信息及各个所述单元信息对应的自定义库能在所述组态平台的平台框架中导入;
若所述库信息或各个所述单元信息应用在所述组态平台所属的***中无效,则所述库信息及各个所述单元信息对应的自定义库不能在所述组态平台的平台框架中导入。
7.一种自定义库处理装置,其特征在于,所述装置应用于组态平台,所述装置包括:
获取单元,用于当用户需要调用自定义库时,获取存储空间中所述自定义库对应的已加密文件;
解密单元,用于对所述已加密文件进行解密,获得所述已加密文件中的库信息、单元信息及校验值;所述单元信息包括功能块或函数的名称、参数定义、以及组态逻辑;
校验单元,用于基于所述校验值,校验所述库信息及各个所述单元信息是否合法;
第一判断单元,用于所述库信息及各个所述单元信息合法,则判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;
第二判断单元,用于若所述用户拥有在所述组态平台调用所述自定义库的权限,判断是否能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库;
导入单元,用于若能在所述组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,则基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台的平台框架,以使所述用户通过所述组态平台调用所述自定义库;
其中,所述校验单元基于所述校验值,校验所述库信息及各个所述单元信息是否合法的过程,包括:
调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的验证值;
判断所述验证值与所述校验值是否一致;
若所述验证值与所述校验值一致,则确定所述库信息及各个所述单元信息合法;
若所述验证值与所述校验值不一致,则确定所述库信息及各个所述单元信息非合法;
其中,所述基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台,包括:
将所述库信息及各个所述单元信息加入至所述组态平台的平台框架中,生成所述库信息及各个所述单元信息对应的自定义库;
对所述自定义库进行加密和签名,并生成所述自定义库对应的单元列表,所述单元列表中包含各个所述单元信息,以使所述用户通过所述单元列表中的各个单元信息调用所述自定义库。
8.一种自定义库处理***,其特征在于,包括:
开发平台、存储空间及组态平台;
所述开发平台包括预编译模块、导出模块及多个算法单元;
所述预编译模块,用于当用户完成对各个所述算法单元的编译时,检验各个所述算法单元的合法性;
所述导出模块,用于当各个所述算法单元合法时,导出各个所述算法单元对应的自定义库,并在提取自定义库的库信息及各个算法单元的单元信息后,对库信息及单元信息进行签名获得校验值;将库信息、单元信息及校验值保存至所述自定义库对应的库文件中,对库文件进行加密,将已加密文件发送至所述存储空间;所述单元信息包括功能块或函数的名称、参数定义、以及组态逻辑;
所述组态平台包括导入模块;
所述导入模块,用于获取所述存储空间中的已加密文件,并对所述已加密文件进行解密,获得已加密文件中的校验值、库信息、单元信息;基于所述校验值,校验所述库信息及各个所述单元信息是否合法;判断是否能在组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,及判断所述用户是否拥有在所述组态平台调用所述自定义库的权限;若能在组态平台的平台框架中导入所述库信息及各个所述单元信息对应的自定义库,且所述用户拥有在所述组态平台调用所述自定义库的权限,则基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台;
所述存储空间,用于接收所述开发平台发送的已加密文件,并对已加密文件进行保存;
其中,所述基于所述校验值,校验所述库信息及各个所述单元信息是否合法,包括:
调用预先设置的第一算法,对所述库信息及各个所述单元信息进行签名,生成所述库信息及各个所述单元信息对应的验证值;
判断所述验证值与所述校验值是否一致;
若所述验证值与所述校验值一致,则确定所述库信息及各个所述单元信息合法;
若所述验证值与所述校验值不一致,则确定所述库信息及各个所述单元信息非合法;
其中,所述基于所述库信息及各个所述单元信息,将所述自定义库导入所述组态平台,包括:
将所述库信息及各个所述单元信息加入至所述组态平台的平台框架中,生成所述库信息及各个所述单元信息对应的自定义库;
对所述自定义库进行加密和签名,并生成所述自定义库对应的单元列表,所述单元列表中包含各个所述单元信息,以使所述用户通过所述单元列表中的各个单元信息调用所述自定义库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011230952.4A CN112287334B (zh) | 2020-11-06 | 2020-11-06 | 自定义库处理方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011230952.4A CN112287334B (zh) | 2020-11-06 | 2020-11-06 | 自定义库处理方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112287334A CN112287334A (zh) | 2021-01-29 |
CN112287334B true CN112287334B (zh) | 2024-03-08 |
Family
ID=74352118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011230952.4A Active CN112287334B (zh) | 2020-11-06 | 2020-11-06 | 自定义库处理方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112287334B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116232655B (zh) * | 2022-12-22 | 2024-06-11 | 广州致远电子股份有限公司 | 一种基于物联网云平台的组态应用权限管理方法以及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996693A (zh) * | 2009-08-25 | 2011-03-30 | 北京广利核***工程有限公司 | 一种用于反应堆保护***的组态*** |
US8499357B1 (en) * | 2010-08-06 | 2013-07-30 | Emc Corporation | Signing a library file to verify a callback function |
CN104751059A (zh) * | 2015-04-22 | 2015-07-01 | 北京工业大学 | 基于函数模板的软件行为分析方法 |
CN105302545A (zh) * | 2015-09-02 | 2016-02-03 | 湖南三一智能控制设备有限公司 | 一种组态软件的自定义控件开发方法及装置 |
CN106874778A (zh) * | 2017-02-24 | 2017-06-20 | 陈晶 | 基于Android***的智能终端文件获取以及数据恢复***及方法 |
CN107844093A (zh) * | 2016-09-18 | 2018-03-27 | 南京南瑞继保电气有限公司 | 一种基于元件模型的自定义功能块及组态封装方法 |
CN109684839A (zh) * | 2018-12-19 | 2019-04-26 | Oppo广东移动通信有限公司 | 自定义模型防篡改方法、装置、终端设备及存储介质 |
KR20200041607A (ko) * | 2018-10-12 | 2020-04-22 | 주식회사 아이오트러스트 | 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법과 펌웨어 위변조 방지 방법 |
-
2020
- 2020-11-06 CN CN202011230952.4A patent/CN112287334B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996693A (zh) * | 2009-08-25 | 2011-03-30 | 北京广利核***工程有限公司 | 一种用于反应堆保护***的组态*** |
US8499357B1 (en) * | 2010-08-06 | 2013-07-30 | Emc Corporation | Signing a library file to verify a callback function |
CN104751059A (zh) * | 2015-04-22 | 2015-07-01 | 北京工业大学 | 基于函数模板的软件行为分析方法 |
CN105302545A (zh) * | 2015-09-02 | 2016-02-03 | 湖南三一智能控制设备有限公司 | 一种组态软件的自定义控件开发方法及装置 |
CN107844093A (zh) * | 2016-09-18 | 2018-03-27 | 南京南瑞继保电气有限公司 | 一种基于元件模型的自定义功能块及组态封装方法 |
CN106874778A (zh) * | 2017-02-24 | 2017-06-20 | 陈晶 | 基于Android***的智能终端文件获取以及数据恢复***及方法 |
KR20200041607A (ko) * | 2018-10-12 | 2020-04-22 | 주식회사 아이오트러스트 | 블록체인 기반 암호화폐 지갑 및 블록체인 거래 방법과 펌웨어 위변조 방지 방법 |
CN109684839A (zh) * | 2018-12-19 | 2019-04-26 | Oppo广东移动通信有限公司 | 自定义模型防篡改方法、装置、终端设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
Bellare M.proofs for identity-based identification and signature schemes.IEEE.2009,(第01期),全文. * |
张桂鹏 ; 匡振曦 ; 陈平华 ; .一种采用签名与哈希技术的云存储去重方案.计算机工程与应用.(01),全文. * |
罗亦言 ; 沈艺敏 ; 江春 ; .基于PHP的高等学校站群***设计.电脑编程技巧与维护.2020,(03),全文. * |
赵洪娣 ; .自定义功能块类型在电解槽联锁中的应用.中国氯碱.2015,(09),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112287334A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101503785B1 (ko) | 동적 라이브러리를 보호하는 방법 및 장치 | |
EP3038004A1 (en) | Method for providing security for common intermediate language-based program | |
CN111552931A (zh) | java代码的加壳方法与*** | |
WO2016078130A1 (zh) | 一种防逆向apk文件的动态加载方法 | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
CN104866739A (zh) | 安卓***中应用程序加密方法及*** | |
CN108399319B (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
CN110333868B (zh) | 用于生成子应用的安装包的方法和*** | |
CN101957903A (zh) | 一种保护类文件的方法和装置 | |
EP3296906A1 (en) | Method for protecting dex file from being decompiled in android system | |
CN107430650B (zh) | 保护计算机程序以抵御逆向工程 | |
CN108880859B (zh) | 升级文件的配置方法、装置、服务器、终端及存储介质 | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
US20180067777A1 (en) | Application protection method, server, and terminal | |
CN111191195A (zh) | 一种用于保护apk的方法和装置 | |
CN111159658B (zh) | 字节码处理方法、***、装置、计算机设备和存储介质 | |
CN110708310B (zh) | 租户级权限管理方法、装置及设备 | |
WO2011134207A1 (zh) | 软件保护方法 | |
CN111859415A (zh) | 神经网络模型加密***和方法 | |
CN111475782A (zh) | 基于sgx软件扩展指令的api密钥保护方法及*** | |
JP4664055B2 (ja) | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 | |
CN112287334B (zh) | 自定义库处理方法、装置及*** | |
CN105678120B (zh) | 一种应用程序安全防护方法和服务器 | |
CN104951705A (zh) | 一种基于操作***接口重写的安卓应用数据加密封装方法 | |
CN111159712B (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 |