一种在线系统和离线系统数据交互时数据安全的管控方法

文档序号:9791673阅读:1333来源:国知局
一种在线系统和离线系统数据交互时数据安全的管控方法
【技术领域】
[0001]本发明涉及一种数据交互时数据安全技术领域,具体地说是一种在线系统和离线系统数据交互时数据安全的管控方法。
【背景技术】
[0002]某业务管理信息系统,采用“集中/分布式”的架构,主要分成两大块:一、总公司/分公司管理系统,主要侧重业务规范,管理,监督,综合查询,决策分析等;二、承储库管理系统,主要侧重业务执行,业务数据收集,报表上报等。
[0003]根据管理需要,每个各承储库,会定期编制统一格式的报表给总公司,在编制报表的过程中,为了用户使用方便,系统支持离线系统编制报表,在离线系统编制完报表后,可以通过导入的方式,将数据导入在线系统,然后通过数据交换的方式上传至分公司、总公司。
[0004]线系统和离线系统并行的时候,两个系统之间数据传送时,容易导致数据泄密或是被非法篡改的问题。

【发明内容】

[0005]本发明的技术任务是针对以上不足之处,提供一种在线系统和离线系统数据交互时数据安全的管控方法,来解决在线系统和离线系统并行的时候,两个系统之间数据传送时,容易导致数据泄密或是被非法篡改的问题。
[0006]本发明解决其技术问题所采用的技术方案是:
一种在线系统和离线系统数据交互时数据安全的管控方法,
(1)、在线系统导出数据进离线系统步骤如下:
①、在线系统导出数据时,通过对数据进行对象格式的方式,实现第一次加密;
②、在线系统导出数据,形成介质文件时,通过对文件加密的方式,实现第二次的加密;
③、数据导出,文件形成后,通过压缩文件时录入压缩加密密码的方式,实现第三次加密;
④、导入数据进入离线系统时,离线系统对用户密码进行验证,验证通过,进行下一步;
⑤、导入数据进入离线系统时,离线系统进行压缩加密密码验证,验证通过,进行下一步;
⑥、离线系统导入数据;
(2)、离线系统回导数据进在线系统步骤如下:
①、离线系统对数据进行对象格式的方式,实现第一次加密;
②、离线系统导出数据,形成介质文件时,通过对文件加密的方式,实现第二次的加密;
③、数据导出,文件形成后,通过压缩文件时录入压缩加密密码的方式,实现第三次加密;
④、导入数据进入在线系统时,在线系统对用户密码进行验证,验证通过,进行下一步; ⑤、导入数据进入在线系统时,在线系统进行压缩加密密码验证,验证通过,进行下一步;
⑥、数据回导进在线系统。
[0007]步骤(I)的①中,在线系统导出数据时,根据在线系统中定义的对象格式,以串行化字符流的形式,将数据形成字符流再导出,实现第一次加密。
[0008]步骤(2)的①中,离线系统导出数据时,根据离线系统中定义的对象格式,以串行化字符流的形式,将数据形成字符流再导出,实现第一次加密。
[0009]步骤(I)中,在线系统对敏感数据控制:在线系统支持通过预配置的方式,设定允许导出数据和不允许导出数据;在线系统导出数据时,仅导出允许导出数据,不允许导出的数据系统自动识别,不导出。
[0010]离线系统提供数据的隔离机制,不同的用户相互之间进行数据隔离;保证数据的私密性,每个用户只能看到自己导入的数据,不能看到其它用户导入的数据。
[0011]步骤(2)中,在离线系统回导数据进在线系统时,系统自动识别离线系统中的数据与在线系统中数据的差异,并展示给用户,以帮助用户是否确定要导入。
[0012]步骤(2)中,在线系统读取回导的数据时,对加密文件内容进行解密。
[0013]本发明的一种在线系统和离线系统数据交互时数据安全的管控方法和现有技术相比,具有以下有益效果:通过在线系统导出数据时进行加密,离线系统导入数据时进行解密验证的方式,保证了数据的私密性;设计合理、结构简单、易于加工、体积小、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
【附图说明】
[0014]下面结合附图对本发明进一步说明。
[0015]附图1为一种在线系统和离线系统数据交互时数据安全的管控方法的在线系统导出数据的流程图;
附图2为一种在线系统和离线系统数据交互时数据安全的管控方法的离线系统导入数据的流程图。
【具体实施方式】
[0016]下面结合附图和具体实施例对本发明作进一步说明。
[0017]实施例1:
本发明的一种在线系统和离线系统数据交互时数据安全的管控方法,
(1)、在线系统导出数据进离线系统步骤如下:在线系统对敏感数据控制,在线系统支持通过预配置的方式,设定允许导出数据和不允许导出数据;在线系统导出数据时,仅导出允许导出数据,不允许导出的数据系统自动识别,不导出;
①、在线系统导出数据时,根据在线系统中定义的对象格式,以串行化字符流的形式,将数据形成字符流再导出,实现第一次加密;
②、在线系统导出数据,形成介质文件时,通过对文件加密的方式,实现第二次的加密;
③、数据导出,文件形成后,通过压缩文件时录入压缩加密密码的方式,实现第三次加密;④、导入数据进入离线系统时,离线系统对用户密码进行验证,验证通过,进行下一步;
⑤、导入数据进入离线系统时,离线系统进行压缩加密密码验证,验证通过,进行下一步;
⑥、离线系统导入数据;离线系统提供数据的隔离机制,不同的用户相互之间进行数据隔离;保证数据的私密性,每个用户只能看到自己导入的数据,不能看到其它用户导入的数据。
[0018](2)、离线系统回导数据进在线系统步骤如下:
①、离线系统导出数据时,根据离线系统中定义的对象格式,以串行化字符流的形式,将数据形成字符流再导出,实现第一次加密;
②、离线系统导出数据,形成介质文件时,通过对文件加密的方式,实现第二次的加密;
③、数据导出,文件形成后,通过压缩文件时录入压缩加密密码的方式,实现第三次加密;
④、导入数据进入在线系统时,在线系统对用户密码进行验证,验证通过,进行下一步;
⑤、导入数据进入在线系统时,在线系统进行压缩加密密码验证,验证通过,进行下一步;
⑥、数据回导进在线系统。
[0019]步骤(2)中,在离线系统回导数据进在线系统时,系统自动识别离线系统中的数据与在线系统中数据的差异,并展示给用户,以帮助用户是否确定要导入。
[0020]步骤(2)中,在线系统读取回导的数据时,对加密文件内容分别进行压缩密码解密、文件加密密码解密和字符流解密。
[0021]实施例2:
本发明的一种在线系统和离线系统数据交互时数据安全的管控方法,
(1)、在线系统导出数据进离线系统步骤如下:在线系统对敏感数据控制,在线系统支持通过预配置的方式,设定允许导出数据和不允许导出数据;在线系统导出数据时,仅导出允许导出数据,不允许导出的数据系统自动识别,不导出;
①、在线系统导出数据时,根据在线系统中定义的对象格式,确定需要导出数据结构,抽象形成自己的java对象类,并进行序列化;导出数据时,将指定的java对象以字符流的形成输出,实现第一次加密;涉及到的部分代码如下:
public class ReportDataSaveObject implements Serializable {
}o
[0022]②、在线系统导出数据,形成介质文件时,通过对文件加密的方式,实现第二次的加密;涉及到的部分代码如下:
public static boolean encryptFiIe(String sourceFilePath, String seed) {
Il加密是否成功标志默认为trueboolean isSuc = true;try {
Il对数据文件名截取得到当前文件所在目录
String curF i I ePath = sourceF iIePath.substring(0,sourceFilePath.1astIndexOf(File.separator));
if (seed == null) {//不指定seed生成随机密钥getSecretKey(curFilePath);
} else {//生成指定密钥
getSecretKey(curFilePath, seed);
}
File sourceFile = new File(sourceFilePath);
//为目标文件添加加密文件标识
String destFiIePath = sourceFilePath + ENCRYPFILE_SUFFIX;
File destFile = new File(destFilePath);
//目标文件不存在不再继续执行并给出提示
if (! sourceFile.exists() || ! sourceFile.1sFileO) {
System.err.println(〃文件:〃 + sourceFile + 〃不存在或不是文件,导致加密异常!");
isSuc = false;
}
//创建加密目标文件destFile.createNewFile();
InputStream in = new FilelnputStream(sourceFile);
OutputStream out = new FileOutputStream(destFile);
//获取密钥
String fiIePath = curFiIePath + File.separator + KEY—FILE;
File file = new File(filePath);
Key privateKey = null;if (file.exists() && file.1sFileO) {
privateKey = (Key) FileUtil.readFiIeData(file);
} else {
System.err.println(〃密钥文件:〃 + f ilePath + 〃不存在,导致加密异常!");
isSuc = false;
}
byte[] raw = privateKey.getEncoded();
SecretKeySpec secretKeySpec = new SecretKeySpec(raw, ALGORITHM);//实例化AES加密器
Cipher cipher = Cipher.getlnstance(ALGORITHM);
//初始加密器为加密模式
cipher.init(Cipher.ENCRYPT—MODE,secretKeySpec);
//读入数据并将其加密
CipherInputStream cin = new CipherInputStream(in, cipher);byte[] cache = new byte[CACHE—SIZE];int nRead = 0;
while ((nRead = cin.read(cache)) != -1) { out.write(
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1