专利名称:一种电子交易文件的保护方法
技术领域:
本发明涉及计算机网络安全技术领域,尤其涉及一种电子交易文件的保护方法。
背景技术:
在支付扣费过程中,本地系统生成一个文件,通过银联提供的上传页面上传至银联,银联去各银行做扣款处理,完成后在银联提供的下载页面可以下载到相应的 处理结果文件,而后上传到本地计费系统做处理。由于电子交易过程文件经过多个环节,涉及多个人,有可能存在某人修改的现象,尤其是涉及金额的地方,因此,必须采取一种加密算法和检验手段来确保文件在生成到传到银联没有被修改过,同时也防止银联返回的文件从生成到本地接收并传入计费系统没有更改过。
发明内容
本发明要解决的技术问题在于,现有技术电子交易文件结果多个环节、涉及多个人,有可能被修改等缺陷,提供一种电子交易文件的保护方法。本发明解决其技术问题所采用的技术方案是提供一种电子交易文件的保护方法,包括以下步骤SI、通过第一加密算法计算出与电子交易文件对应的加密值;所述加密值随电子交易文件的任何修改而改变;S2、通过第二加密算法计算出与加密值对应的字符串,并存储于校验文件;所述校验文件的文件名与电子交易文件的文件名相同;S3、传输电子交易文件和校验文件;S4、通过第二加密算法解密校验文件获取校验文件解密后的加密值;S5、判断校验文件解密后的加密值与电子交易文件的加密值是否相同;若相同,则跳转步骤S6 ;若不同,则提示电子交易文件被修改,并返回步骤S3 ;S6、接收电子交易文件。优选的,所述第一加密算法为MD5算法,加密值为MD5值。优选的,所述校验文件的扩展名为.md5。优选的,所述第二加密算法为DES算法。优选的,所述电子交易文件为扣费文件。优选的,所述电子交易文件为文本文件或excel文件。实施本发明电子交易文件的保护方法,具有以下有益效果采用本发明的保护方法,能够及时发现电子交易文件在传输等中间环节是否被篡改,有效保护电子交易文件,使电子交易文件更加安全。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图中图I是本发明电子交易文件的保护方法实施例的流程示意图。
具体实施例方式下文将要描述的各种实施例将要参考相应的附图,这些附图构成了实施例的一部分,其中描述了实现本发明可能采用的各种实施例。应明白,还可使用其他的实施例,或者对本文列举的实施例进行结构和功能上的修改,而不会脱离本发明的范围和实质。本发明对电子交易文件进行保护的原理由于电子交易文件从生成到网络中的上传下载都不会改变文件的MD5值,具有唯一性,但只要是修改文件的任何内容都会改变这个MD5值,因此,可通过MD5值来校验文件是否被修改,为了保护MD5值,增加了 DES算法对 其进行加密以及解密,进而可以保护电子交易文件。在本发明提供的一种电子交易文件的保护方法实施例中,如图I所示,包括以下步骤SI、通过第一加密算法计算出与电子交易文件对应的加密值;所述加密值随所述电子交易文件的任何修改而改变;S2、通过可逆的第二加密算法计算出与加密值对应的校验文件;校验文件的文件名与电子交易文件的文件名相同;S3、传输电子交易文件和校验文件;S4、通过第二加密算法解密校验文件获取校验文件解密后的加密值;第二加密算法的密钥通过提取约定,且通过其他途径传输给对方;S5、判断校验文件的加密值与电子交易文件的加密值是否相同;若相同,则跳转步骤S6 ;若不同,则提示所述电子交易文件被修改,并返回步骤SI。S6、接收电子交易文件。其中,对电子交易文件通过第一加密算法计算出与其对应的加密值,该第一加密算法为MD5算法,加密值为MD5值,当然,该第一加密算法也可为其他算法。对加密值进行二次加密的第二加密算法为DES算法,进而生成校验文件,校验文件的内容为MD5值经过第二加密算法计算出的字符串,且该校验文件的扩展名为.md5。 另外,第二加密算法除了 DES算法外,理论上是可以使用其它加密算法的,关键在两点(1)必须可逆,(2)必须能自定义密钥,这样做的目的是防止别有用心的人来修改交易文件的同时修改MD5值,之所以对MD5值二次可逆加密传输就是确保文件检验值不被修改。为了更清楚明晰本发明的思想,下面以银联的扣费文件为例,对本发明的具体实施方式
进行描述。电子交易文件在银联中为扣费文件为例,当然,也可以是涉密文件,其格式以银联要求的交易文件格式为准,通常是文本文件或excel文件,可以是任意其他约定格式的文件,对于具体格式不做细述。
银联系统包括银联中心和计费系统,扣费文件主要是在银联中心与计费系统之间的传输。I、当从计费系统下载文件时,自动下载批量扣费文件(格式以约定格式),并生成MD5校验文件,MD5校验文件的文件名同批量扣费文件名,内容是批量扣费文件的MD5值经过DES加密后的字符串(DES加密需要跟银联中心约定加密密钥),扩展名使用.md5。2、将批量扣费文件和MD5校验文件上传至银联中心,银联中心接收到之后读取MD5校验文件的内容,经过DES解密,然后再同批量扣费文件的MD5值比较,如果MD5值相同,则接收该批量扣费文件,如果MD5值不同,则返回给计费系统,提示扣费文件生成后有人修改过,请重新生成。3、银联中心扣完费后完成对批量扣费文件处理,同时生成与批量扣费返回文件名相同的检验文件,此检验文件同样以批量扣费文件返回文件名为文件名,以.md5为扩展名,内容是经过DES加密的批量扣费文件返回文件的字符串。
4、计费系统下载批量扣费文件返回文件和检验文件;并上传批量扣费文件返回文件和检验文件至计费系统中,计费系统根据检验文件内容,通过DES解密,得到MD5值,与批量扣费文件返回文件的MD5值比较,确定扣费文件返回文件是否被修改过,如果修改过将不允许提交,必须重新下载或由银联重新生成。通过上述银联系统对本发明方法的应用,基本了解了本发明的思想,其中,取得文件MD5值的算法为
public byte口 eccrypt(String info) throws NoSuchAlgorithmException{MessageDigest md5 = iViessageDigest,getinstance("MD5"):byte[] srcBytes = info.getBytes(); //使用 srcBytes 更新摘要md5 .update(srcBytes); //完成哈希计算,得到 resultbyte[] resuitBytes = md5.digest();return resuitBytes;}
MD5值的DES加密算法为
/**字符串默认键值*/
private static String strDefaultKey = "national";
/**加密丁具*/
private Cipher encryptCipher = null;
/**解密工具*/
private Cipher decryptCipher = null;
*将byte数组转换为表示16进制值的字符串,如byte[K8J8丨转换为0813,和 public static bytef]
*liexStr2ByteAiT(String strln)互为可逆的转换过程
*
*@param ai'i'B
*需要转换的byte数组 *@retum转换后的字符串
*@thiows Exception
*本方法不处理任何异常,所有异常全部抛出 */
public static String byteArr2HexStr(byte[] arrB) throws Exception { int iLen = arrB.lensth;
//每个byte用两个字符才能表示,所以字符串的长度是数组长度的两
倍
SlringBuiTer sb — new Su.ingBuiTer(iLen - 2),for (int i = O; i < iLen; i++) {int inti mp = arrB[i];
//把负数转换为正数 while (intTtnp < O)
intTmp = intTmp + 256;
}
!I小于OF的数需要在前面补O if (intTmp < 16) { sb.append("0");
}
sb.append(Integer.toString(intTmp, 16));
}
return sbJoStringO;}
*将表不16进制值的字符串转换为byte数组,和public static StringbyteArr2HexStr(by e[] arrB)
*互为可逆的转换过程
*
*@param strln
*需要转换的字符串
* return转换后的byte数组
*@lhiows Exception
*本方法不处理任何异常,所有异常全部抛出*/
public static byre[] hexStr2ByteAiT(Suing strln) throws Exception { byte[] arrB — strln.getBytesQ; int iLen = arrB.length;
//两个字符表示一个字节,所以字节数组长度是字符串长度除以2byte[J arrOut = new bvte[iLen / 2J;for (int i = 0; i < iLen; i = i + 2) {
Siring SirTinp 二 new Su.ing(an.B, i, 2); arrOiit[i / 2] = (byte) Integer.parselnt(strTmp, 16);
}
return arrOut;
}
产*
*默认构造方法,使用默认密钥
*@lhrows Exception
麵1
public DesUrils() throws Exception { this( strDefaultKey);
权利要求
1.一种电子交易文件的保护方法,其特征在于,包括以下步骤 51、通过第一加密算法计算出与电子交易文件对应的加密值;所述加密值随所述电子交易文件的任何修改而改变; 52、通过可逆的第二加密算法计算出与所述加密值对应的字符串,并存储于校验文件;所述校验文件的文件名与所述电子交易文件的文件名相同; 53、传输所述电子交易文件和所述校验文件; 54、通过所述第二加密算法解密所述校验文件获取所述校验文件解密后的加密值; 55、判断所述校验文件解密后的加密值与所述电子交易文件的加密值是否相同;若相同,则跳转步骤S6 ;若不同,则提示所述电子交易文件被修改,并返回步骤SI ; 56、接收所述电子交易文件。
2.根据权利要求I所述的电子交易文件的保护方法,其特征在于,所述第一加密算法为MD5算法,所述加密值为MD5值。
3.根据权利要求2所述的电子交易文件的保护方法,其特征在于,所述校验文件的扩展名为.md5o
4.根据权利要求I所述的电子交易文件的保护方法,其特征在于,所述第二加密算法为DES算法。
5.根据权利要求I所述的电子交易文件的保护方法,其特征在于,所述电子交易文件为扣费文件。
6.根据权利要求5所述的电子交易文件的保护方法,其特征在于,所述电子交易文件为文本文件或excel文件。
全文摘要
一种电子交易文件的保护方法,包括以下步骤S1、生成与电子交易文件对应的通过第一加密算法计算出的加密值;S2、生成与加密值对应的通过第二加密算法计算出的字符串,并存储于校验文件中;S3、传输电子交易文件和校验文件;S4、通过第二加密算法解密校验文件获取校验文件解密后的加密值;S5、判断校验文件解密后的加密值与电子交易文件的加密值是否相同;若相同,则跳转步骤S6;若不同,则返回步骤S1;S6、接收电子交易文件。采用本发明的保护方法,能够及时发现电子交易文件在传输等中间环节是否被篡改,有效保护电子交易文件,使电子交易文件更加安全。
文档编号H04L29/06GK102831341SQ20121026132
公开日2012年12月19日 申请日期2012年7月26日 优先权日2012年7月26日
发明者洪军, 王三旗 申请人:深圳市赛格导航科技股份有限公司