本发明涉及计算机技术领域,特别涉及一种信息交换系统及方法。
背景技术:
随着企业信息化的不断发展,许多大型企业通常部署有两套应用系统,其中一套部署在与互联网隔离的内网环境,一套部署在互联网环境下的外网环境。在应用过程中,通过部署在外网环境中的应用系统进行信息处理,再将处理后的信息传输给部署在内网环境中的应用系统。
两套应用系统进行信息交换时,通常采用明文传输,即部署在外网环境中的应用系统将处理后的信息直接发送给部署在内网中的应用系统,由此,在信息传输过程中可能遭到窃取或篡改,使得信息传输的安全性较低。
技术实现要素:
本发明实施例提供了一种信息交换系统及方法,能提高信息传输的安全性。
第一方面,本发明实施例提供了一种信息交换系统,包括:第一应用系统和第二应用系统;其中,
所述第一应用系统,用于确定待交换信息,利用预设的对称加密算法对所述待交换信息进行加密,形成第一加密信息;利用预设的不可逆加密算法对所述待交换信息进行加密,形成第二加密信息;将所述第一加密信息和所述第二加密信息发送给所述第二应用系统;
所述第二应用系统,用于获取所述第一加密信息和所述第二加密信息;利用预设的与所述对称加密算法对应的解密算法对所述第一加密信息进行解密,形成解密信息;利用预设的所述不可逆加密算法对所述解密信息进行加密,形成第三加密信息;确定所述第二加密信息与所述第三加密信息是否相同,如果是,将所述解密信息进行导入。
优选地,
所述第一应用系统,用于根据预设盐值对所述待交换信息进行加盐处理,并利用所述不可逆加密算法对加盐处理后的所述待交换信息进行加密,形成所述第二加密信息;
所述第二应用系统,用于根据所述预设盐值对所述解密信息进行加盐处理,并利用所述不可逆加密算法对加盐处理后的所述解密信息进行加密,形成所述第三加密信息。
优选地,
所述第一应用系统,进一步用于设置第一状态记录表;根据所述第一加密信息和所述第二加密信息生成导出文件,并确定所述导出文件对应的第一标识信息;将所述导出文件发送给所述第二应用系统,并将所述导出文件和所述第一标识信息存储至所述第一状态记录表,并在所述第一状态记录表中记录所述导出文件的状态为第一导出状态。
优选地,
所述第二应用系统,进一步用于设置第二状态记录表;从所述导出文件中解析出所述第一加密信息和所述第二加密信息;在确定出所述第二加密信息和所述第三加密信息相同时,确定所述第二状态记录表中是否存在所述解密信息对应的第二标识信息,如果是,发出信息已导入提示;否则,执行所述将所述解密信息进行导入,并确定所述解密信息对应的所述第二标识信息,将所述第二标识信息和所述解密信息存储至所述第二状态记录表,并在所述第二状态记录表中记录所述解密信息的状态为第一导入状态。
优选地,
所述第二应用系统,进一步用于对导入的所述解密信息进行业务处理,并将业务处理后的所述解密信息进行加密,生成返回信息,将所述返回信息发送给所述第一应用系统,并在所述第二状态记录表中记录所述解密信息的状态为第二导出状态;
所述第一应用系统,进一步用于接收所述返回信息,并对所述返回信息进行解密,根据解密后的所述返回信息,确定业务处理后的所述解密信息是否被篡改,如果否,将所述解密信息进行导入,并在所述第一状态记录表中记录所述解密信息的状态为第二导入状态。
优选地,
所述对称加密算法包括:高级加密标准AES算法;
优选地,
所述不可逆加密算法包括:安全散列算法SHA256。
第二方面,本发明实施例提供了一种利用上述任一实施例提供的信息交换系统进行信息交换的方法,包括:
利用第一应用系统确定待交换信息;
利用预设的对称加密算法对所述待交换信息进行加密,形成第一加密信息;
利用预设的不可逆加密算法对所述待交换信息进行加密,形成第二加密信息;
将所述第一加密信息和所述第二加密信息发送给第二应用系统;
利用第二应用系统获取所述第一加密信息和所述第二加密信息;
利用预设的与所述对称加密算法对应的解密算法对所述第一加密信息进行解密,形成解密信息;
利用预设的所述不可逆加密算法对所述解密信息进行加密,形成第三加密信息;
确定所述第二加密信息与所述第三加密信息是否相同,如果是,将所述解密信息进行导入。
优选地,
所述利用预设的不可逆加密算法对所述待交换信息进行加密,形成第二加密信息,包括:
根据预设盐值对所述待交换信息进行加盐处理;
利用所述不可逆加密算法对加盐处理后的所述待交换信息进行加密,形成所述第二加密信息;
所述利用预设的所述不可逆加密算法对所述解密信息进行加密,形成第三加密信息,包括:
根据预设盐值对所述解密信息进行加盐处理;
利用所述不可逆加密算法对加盐处理后的所述解密信息进行加密,形成所述第三加密信息。
优选地,
进一步包括:设置第一状态记录表和第二状态记录表;
所述将所述第一加密信息和所述第二加密信息发送给第二应用系统,包括:
根据所述第一加密信息和所述第二加密信息生成导出文件,并确定所述导出文件对应的第一标识信息;
将所述导出文件发送给所述第二应用系统;
在所述将所述第一加密信息和所述第二加密信息发送给第二应用系统之后,进一步包括:
将所述导出文件和所述第一标识信息存储至所述第一状态记录表;
在所述第一状态记录表中记录所述导出文件的状态为第一导出状态;
所述利用第二应用系统获取所述第一加密信息和所述第二加密信息,包括:
从所述导出文件中解析出所述第一加密信息和所述第二加密信息;
在确定所述第二加密信息与所述第三加密信息相同之后,进一步包括:
确定所述第二状态记录表中是否存在所述解密信息对应的第二标识信息;
如果是,发出信息已导入提示;
否则,执行所述将所述解密信息进行导入,并确定所述解密信息对应的所述第二标识信息,将所述第二标识信息和所述解密信息存储至所述第二状态记录表,并在所述第二状态记录表中记录所述解密信息的状态为第一导入状态。
优选地,
在所述将所述解密信息进行导入之后,进一步包括:
利用所述第二应用系统对导入的所述解密信息进行业务处理;
将业务处理后的所述解密信息进行加密,生成返回信息;
将所述返回信息发送给所述第一应用系统,并在所述第二状态记录表中记录所述解密信息的状态为第二导出状态;
利用所述第一应用系统接收所述返回信息;
对所述返回信息进行解密,根据解密后的所述返回信息,确定业务处理后的所述解密信息是否被篡改,如果否,将所述解密信息进行导入,并在所述第一状态记录表中记录所述解密信息的状态为第二导入状态。
本发明实施例提供了一种信息交换系统及方法,两个应用系统进行信息交换时,首先通过需要导出信息的第一应用系统根据对称加密算法对待交换信息进行加密,形成第一加密信息,然后利用不可逆加密算法对待交换信息进行加密,形成第二加密信息,然后第一应用系统将第一加密信息和第二加密信息发送给需要导入信息的第二应用系统。第二应用系统先对第一加密信息进行解密,然后利用不可逆加密算法对解密信息进行重新加密,再验证加密后的第三加密信息是否与第二加密信息相同,当相同时,说明待交换信息在传输过程中没有被篡改,解密信息即为待交换信息,此时第二应用系统才将解密信息进行导入。由此,通过对待交换信息进行加密,并对加密后信息进行验证,保障导入数据的准确性,从而提高了信息传输的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种信息交换系统的结构示意图;
图2是本发明一个实施例提供的一种信息交换方法的流程图;
图3是本发明另一个实施例提供的一种信息交换方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种信息交换系统,该信息交换系统包括:第一应用系统101和第二应用系统102;其中,
所述第一应用系统101,用于确定待交换信息,利用预设的对称加密算法对所述待交换信息进行加密,形成第一加密信息;利用预设的不可逆加密算法对所述待交换信息进行加密,形成第二加密信息;将所述第一加密信息和所述第二加密信息发送给所述第二应用系统102;
所述第二应用系统102,用于获取所述第一加密信息和所述第二加密信息;利用预设的与所述对称加密算法对应的解密算法对所述第一加密信息进行解密,形成解密信息;利用预设的所述不可逆加密算法对所述解密信息进行加密,形成第三加密信息;确定所述第二加密信息与所述第三加密信息是否相同,如果是,将所述解密信息进行导入。
上述实施例中,两个应用系统进行信息交换时,首先通过需要导出信息的第一应用系统根据对称加密算法对待交换信息进行加密,形成第一加密信息,然后利用不可逆加密算法对待交换信息进行加密,形成第二加密信息,然后第一应用系统将第一加密信息和第二加密信息发送给需要导入信息的第二应用系统。第二应用系统先对第一加密信息进行解密,然后利用不可逆加密算法对解密信息进行重新加密,再验证加密后的第三加密信息是否与第二加密信息相同,当相同时,说明待交换信息在传输过程中没有被篡改,解密信息即为待交换信息,此时第二应用系统才将解密信息进行导入。由此,通过对待交换信息进行加密,并对加密后的信息进行验证,保障导入数据的准确性,从而提高了信息传输的安全性。
可以理解的是,第一应用系统和第二应用系统为采用相同开发技术实现的同构系统,例如都是采用C#.NET技术实现的系统。
本发明一个实施例中,所述第一应用系统101,用于根据预设盐值对所述待交换信息进行加盐处理,并利用所述不可逆加密算法对加盐处理后的所述待交换信息进行加密,形成所述第二加密信息;
所述第二应用系统102,用于根据所述预设盐值对所述解密信息进行加盐处理,并利用所述不可逆加密算法对加盐处理后的所述解密信息进行加密,形成所述第三加密信息。
在这里,先对待交换信息进行加盐处理,再采用不可逆加密算法对加盐处理后的待交换信息进行加密,使得加密后的第二加密信息隐蔽性更强,解密难度更大,进一步提高信息安全性。
本发明一个实施例中,所述第一应用系统101,进一步用于设置第一状态记录表;根据所述第一加密信息和所述第二加密信息生成导出文件,并确定所述导出文件对应的第一标识信息;将所述导出文件发送给所述第二应用系统,并将所述导出文件和所述第一标识信息存储至所述第一状态记录表,并在所述第一状态记录表中记录所述导出文件的状态为第一导出状态。
所述第二应用系统102,进一步用于设置第二状态记录表;从所述导出文件中解析出所述第一加密信息和所述第二加密信息;在确定出所述第二加密信息和所述第三加密信息相同时,确定所述第二状态记录表中是否存在所述解密信息对应的第二标识信息,如果是,发出信息已导入提示;否则,执行所述将所述解密信息进行导入,并确定所述解密信息对应的所述第二标识信息,将所述第二标识信息和所述解密信息存储至所述第二状态记录表,并在所述第二状态记录表中记录所述解密信息的状态为第一导入状态。
例如,第一应用系统将导出文件发送给第二应用系统之后,在第一数据记录表中记录导出文件的标识信息和导出文件对应的具体数据,即未加密的待交换数据明文、加密后的加密信息存储至第一数据记录表中,并将导出文件的导出状态记录为“已导出且协同结果未返回”。
相应的,第二应用系统在确定出第二加密信息和第三加密信息相同时,通过第二状态记录表验证同一标识的数据是否已导入,即确定第二状态记录表中是否存在与第一标识信息相同的第二标识信息,如果存在,则说明第二应用系统已将解密信息导入系统中,无需重复导入,则此时不允许信息的再次导入,并发出信息已导入提示,以提示用户解密信息已导入系统中。若不存在,则将解密信息进行导入,并将导入的数据状态记录为“已导入且协同结果未返回”。由此,通过状态记录表记录两个应用系统之间信息交换的状态,防止信息被重复导出或导入,提高信息交换的效率。同时,在第一状态记录表中记录导出信息,在第二状态记录表中记录导出信息,这一方面可作为文件备份,防止数据信息丢失,另一方面通过标识信息,可准确方便的查找对应的交换信息。
本发明一个实施例中,所述第二应用系统102,进一步用于对导入的所述解密信息进行业务处理,并将业务处理后的所述解密信息进行加密,生成返回信息,将所述返回信息发送给所述第一应用系统,并在所述第二状态记录表中记录所述解密信息的状态为第二导出状态;
所述第一应用系统101,进一步用于接收所述返回信息,并对所述返回信息进行解密,根据解密后的所述返回信息,确定业务处理后的所述解密信息是否被篡改,如果否,将所述解密信息进行导入,并在所述第一状态记录表中记录所述解密信息的状态为第二导入状态。
第一应用系统和第二应用系统都有将数据加密后形成导出文件和读入导入文件并将数据解密后插入系统的功能入口。第二应用系统在导入解密信息之后,可对导入的解密信息进行一系列业务处理,然后将处理后的解密信息返回第一应用系统时,也对待返回的信息进行加密,例如采用与第一应用系统导出待交换信息时相同的加密方法,即先利用对称加密算法对处理后的解密信息A进行加密,例如采用高级加密标准(Advanced Encryption Standard,AES)算法对处理后的解密信息进行加密,生成A1,然后再利用不可逆加密算法对处理后的解密信息进行再次加密,例如采用安全散列算法SHA256进行再次加密,生成A2,将A1和A2组合生成返回信息,并将该返回信息发送给第一应用系统,并在第二状态记录表中记录处理后的解密信息的状态为“已导入且协同结果已返回”。
相应地,当第一应用系统接收到返回信息时,首先通过AES加密算法中的解密方法对A1进行解密,形成A3,再将A3经由SHA256加密,生成A4,再判断A4是否与返回信息中的A2相同,若相同,则说明业务处理后的解密信息未被篡改,则第一应用系统导入业务处理后的解密信息,并在第一状态记录表中确定与导入的解密信息具有相同标识信息的导出文件,将确定出的导出文件的状态记录为“已导出且协同结果已返回”。由此,在两个应用系统交换处理后的解密信息时,也将信息进行加密,并对加密后的信息进行验证,保障导入的解密信息的准确性,从而进一步提高了信息传输的安全性。
如图2所示,本发明实施例提供了一种利用上述任一实施例提供的信息交换系统进行信息交换的方法,该方法可以包括以下步骤:
步骤201:利用第一应用系统确定待交换信息;
步骤202:利用预设的对称加密算法对所述待交换信息进行加密,形成第一加密信息;
步骤203:利用预设的不可逆加密算法对所述待交换信息进行加密,形成第二加密信息;
步骤204:将所述第一加密信息和所述第二加密信息发送给第二应用系统;
步骤205:利用第二应用系统获取所述第一加密信息和所述第二加密信息;
步骤206:利用预设的与所述对称加密算法对应的解密算法对所述第一加密信息进行解密,形成解密信息;
步骤207:利用预设的所述不可逆加密算法对所述解密信息进行加密,形成第三加密信息;
步骤208:确定所述第二加密信息与所述第三加密信息是否相同,如果是,将所述解密信息进行导入。
本发明一个实施例中,步骤203的具体实施方式,可以包括:
根据预设盐值对所述待交换信息进行加盐处理;
利用所述不可逆加密算法对加盐处理后的所述待交换信息进行加密,形成所述第二加密信息;
步骤207的具体实施方式,可以包括:
根据预设盐值对所述解密信息进行加盐处理;
利用所述不可逆加密算法对加盐处理后的所述解密信息进行加密,形成所述第三加密信息。
本发明一个实施例中,该方法可以进一步包括:设置第一状态记录表和第二状态记录表;
步骤204的具体实施方式,可以包括:
根据所述第一加密信息和所述第二加密信息生成导出文件,并确定所述导出文件对应的第一标识信息;
将所述导出文件发送给所述第二应用系统;
在步骤204之后,可以进一步包括:
将所述导出文件和所述第一标识信息存储至所述第一状态记录表;
在所述第一状态记录表中记录所述导出文件的状态为第一导出状态;
步骤205的具体实施方式,可以包括:
从所述导出文件中解析出所述第一加密信息和所述第二加密信息;
在确定所述第二加密信息与所述第三加密信息相同之后,进一步包括:
确定所述第二状态记录表中是否存在所述解密信息对应的第二标识信息;
如果是,发出信息已导入提示;
否则,执行所述将所述解密信息进行导入,并确定所述解密信息对应的所述第二标识信息,将所述第二标识信息和所述解密信息存储至所述第二状态记录表,并在所述第二状态记录表中记录所述解密信息的状态为第一导入状态。
本发明一个实施例中,在步骤208之后,可以进一步包括:
利用所述第二应用系统对导入的所述解密信息进行业务处理;
将业务处理后的所述解密信息进行加密,生成返回信息;
将所述返回信息发送给所述第一应用系统,并在所述第二状态记录表中记录所述解密信息的状态为第二导出状态;
利用所述第一应用系统接收所述返回信息;
对所述返回信息进行解密,根据解密后的所述返回信息,确定业务处理后的所述解密信息是否被篡改,如果否,将所述解密信息进行导入,并在所述第一状态记录表中记录所述解密信息的状态为第二导入状态。
下面以待交换信息M为例,对本发明实施例提供的信息交换方法进行详细说明,如图3所示,该方法可以包括以下步骤:
步骤301:通过应用系统A利用AES算法对M进行加密,形成M1,并将M1导出到导出文件中。
步骤302:通过应用系统A利用预设盐值对M进行加盐处理,并利用SHA256算法对加盐处理后的M进行加密,形成M2,将M2导出到导出文件中。
例如,将加密后的信息输出到Excel中,形成导出文件,用于导入时进行防篡改校验。Excel文件中的信息可如表1所示:
表1
其中,对M进行加密的方法至少可通过如下程序语言实现:
可以理解的是,实现对称加密算法的加密和解密方法、不可逆加密算法的加密方法时,不管是java开发语言还是C#.NET开发语言,开发语言底层都有实现这些加密算法的基础类,直接引用开发语言提供的基础类进行开发封装即可,如C#.NET语言中SymmetricAlgorithm类和SHA256Managed类。
步骤303:应用系统A将导出文件发送给应用系统B,并在状态记录表A中记录M的状态为“已导出且协同结果未返回”。
在进行信息交换之前,应用系统A首先定义了信息导入导出状态记录表的数据结果,该状态记录表中记录的信息主要包括:交换信息的唯一标识信息、具体信息及其导入导出状态。状态记录表的表结构可如下表2所示:
表2
步骤304:应用系统B获取导出文件,并从导出文件中解析出M1和M2。
步骤305:应用系统B利用AES算法中的解密方法对M1进行解密,得到M3,利用预设盐值对M3进行加盐处理,并利用SHA256算法对加盐处理后的M3进行加密,形成M4。
步骤306:判断M2和M4是否相同,如果是,执行步骤307,否则结束当前流程。
步骤307:应用系统B将M3进行导入,并在状态记录表B中记录M的状态为“已导入且协同结果未返回”。
其中,验证M2和M4是否相同的过程至少可通过如下程序语言实现:
可以理解的是,状态记录表A和状态记录表B可以为同一个表,也可以是两个不同的表。当状态记录表A和状态记录表B为同一个表时,应用系统A在将导出文件发送给应用系统B时,可将状态记录表一并发送给应用系统B,应用系统B在导入解密信息后,在状态记录表中更新导出文件的状态。当状态记录表A和状态记录表B分别为两个不同的表时,应用系统A和应用系统B分别存储状态记录表A和状态记录表B,并在导入导出信息时分别记录信息状态。
另外,可以理解的是,当验证出M2和M4相同时,说明M和M3相同,应用系统导入的M3实际上即是导入待交换信息M。
步骤308:应用系统B对M3进行业务处理,利用AES算法对处理后的M3进行加密,形成M5,并利用SHA256算法对M3进行加密,形成M6,将M5和M6发送给应用系统A,并在状态记录表B中将M的状态记录为“已导入且协同结果已返回”。
步骤309:应用系统A利用AES算法中的解密方法对M5进行解密,得到M7,利用预设盐值对M7进行加盐处理,并利用SHA256算法对加盐处理后的M7进行加密,形成M8。
步骤310:判断M6和M8是否相同,如果是,执行步骤311,否则结束当前流程。
步骤311:将M8进行导入,并在状态记录表A将M的状态记录为“已导出且协同结果已返回”。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明上述任一实施例提供的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明上述任一实施例提供的方法。
综上所述,本发明以上各个实施例至少具有如下有益效果:
1、在本发明实施例中,两个应用系统进行信息交换时,首先通过需要导出信息的第一应用系统根据对称加密算法对待交换信息进行加密,形成第一加密信息,然后利用不可逆加密算法对待交换信息进行加密,形成第二加密信息,然后第一应用系统将第一加密信息和第二加密信息发送给需要导入信息的第二应用系统。第二应用系统先对第一加密信息进行解密,然后利用不可逆加密算法对解密信息进行重新加密,再验证加密后的第三加密信息是否与第二加密信息相同,当相同时,说明待交换信息在传输过程中没有被篡改,解密信息即为待交换信息,此时第二应用系统才将解密信息进行导入。由此,通过对待交换信息进行加密,并对加密后的信息进行验证,保障导入数据的准确性,从而提高了信息传输的安全性。
2、在本发明实施例中,通过状态记录表记录两个应用系统之间信息交换的状态,防止信息被重复导出或导入,提高信息交换的效率。同时,在第一状态记录表中记录导出信息,在第二状态记录表中记录导出信息,这一方面可作为文件备份,防止数据信息丢失,另一方面通过标识信息,可准确方便的查找对应的交换信息。
3、在本发明实施例中,在第二应用系统对解密信息进行业务处理后,将处理后的解密信息再次加密后再发送给第一应用系统,第一应用系统对加密后的解密信息进行验证,确定出处理后的解密信息在信息交换过程中未被篡改时,才将处理后的解密信息进行导入,从而保障导入的解密信息的准确性,进一步提高了信息传输的安全性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。