一种安全的数据传输方法及装置与流程

文档序号:12751459阅读:310来源:国知局
一种安全的数据传输方法及装置与流程

本发明涉及信息安全领域,尤其涉及一种安全的数据传输方法及装置。



背景技术:

在终端设备和系统进行数据的传输过程中,需要对数据进行加密;而对数据进行加密则是依靠存储于终端设备内部和系统内部的对称密钥完成。现有技术中,普遍的方法是分别在终端设备内部和后台系统的内部存储相同的固定的数据作为对称密钥,每次数据的传输均使用固定不变的对称密钥对数据进行加密,使得数据传输的安全性降低,存在容易被黑客破解,数据被篡改的问题。



技术实现要素:

本发明的目的是为了克服现有技术的不足,提供一种安全的数据传输方法及装置。

一方面,本发明提供了一种安全的数据传输方法,包括:

步骤A1:系统生成随机数作为当前随机数,发送所述当前随机数给终端设备,并根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥;

步骤A2:所述系统使用所述第一密钥对待传输报文进行加密得到第一数据域,根据预设的协议头数据组织头域,使用所述第二密钥对所述头域和所述第一数据域计算出第一校验值;

步骤A3:所述系统根据所述头域、所述第一数据域和所述第一校验值组织指令,并将所述指令发送给所述终端设备;

步骤A4:所述系统接收并解析所述终端设备返回的应答数据得到操作结果,如所述操作结果为操作成功,则根据预设方式更新所述当前随机数,结束;如所述操作结果为操作失败,则结束。

本发明还提供了一种安全的数据传输方法,包括:

步骤B1:终端设备接收系统发送来的随机数,将其作为当前随机数;

步骤B2:所述终端设备接收所述系统发送来的指令,解析接收到的指令得到头域、第一数据域和第一校验值;

步骤B3:所述终端设备根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;

步骤B4:所述终端设备根据所述第二密钥和所述第一校验值校验所述头域和所述第一数据域,如校验成功,则执行步骤B5;如校验失败,则返回错误码给系统,结束;

步骤B5:所述终端设备使用所述第一密钥解密所述第一数据域得到传输报文,将所述传输报文发送给卡片并接收所述卡片返回的操作结果,如所述操作结果为操作成功,则组织成功应答数据并返回给所述系统,根据预设方式更新所述当前随机数,结束;如所述操作结果为操作失败,则组织失败应答数据并返回给所述系统,结束。

另一方面,本发明提供了一种安全的数据传输系统,包括:

生成模块,用于生成随机数作为当前随机数;

第一发送模块,用于发送所述生成模块生成的当前随机数给终端设备;

第一计算模块,用于根据所述当前随机数和与所述终端设备对应的预置密钥计算出第一密钥和第二密钥;

加密模块,用于使用所述第一计算模块计算出的第一密钥对待传输报文进行加密得到第一数据域;

第一组织模块,用于根据预设的协议头数据组织当前头域;

第二计算模块,用于使用所述第一计算模块计算出的第二密钥对所述头域和所述第一数据域计算出第一校验值;

第二组织模块,用于根据所述头域、所述第一数据域和所述第一校验值组织指令;

第二发送模块,用于将所述第二组织模块组织的指令发送给所述终端设备;

接收模块,用于接收所述终端设备返回的应答数据;

解析模块,用于解析所述接收模块接收到的应答数据得到操作结果;

更新模块,用于当所述解析模块得到的操作结果为操作成功时,根据预设方式更新所述当前随机数。

本发明还提供了一种安全的数据传输设备,其特征在于,包括:

第一接收模块,用于接收系统发送来的随机数,将其作为当前随机数;

第二接收模块,用于接收所述系统发送来的指令;

解析模块,用于解析所述第二接收模块接收到的指令得到头域、第一数据域和第一校验值;

第一计算模块,用于根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥,所述当前随机数与所述系统中的随机数相同;

校验模块,用于根据所述第二密钥和所述第一校验值校验所述头域和所述第一数据域;

发送模块,用于当所述校验模块校验失败时,返回错误码给系统,结束;

解密模块,用于当所述校验模块校验成功时,使用所述第一密钥解密所述第一数据域得到传输报文;

所述发送模块,还用于将所述解密模块得到的传输报文发送给卡片;

所述接收模块,还用于接收所述卡片返回的操作结果;

组织模块,用于当所述接收模块接收到的操作结果为操作成功时,组织成功应答数据;还用于当所述接收模块接收到的操作结果为操作失败时,组织失败应答数据;

所述发送模块,还用于将所述组织模块组织的成功应答数据返回给所述系统;还用于将所述组织模块组织的失败应答数据返回给所述系统;

更新模块,用于当所述发送模块将所述组织模块组织的成功应答数据返回给系统之后,根据预设方式更新所述当前随机数。

本发明与现有技术相比,具有以下优点:

在终端设备与系统进行数据传输时,每次采用不同的密钥对数据进行加解密,保证了数据传输的安全性。

附图说明

为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的一种安全的数据传输方法中系统的处理方法流程图;

图2为本发明实施例一提供的一种安全的数据传输方法中终端设备的处理方法流程图;

图3为本发明实施例二提供的一种安全的数据传输方法中系统的处理方法程图;

图4为本发明实施例三提供的一种安全的数据传输方法中终端设备的处理方法流程图;

图5为本发明实施例四提供的一种安全的数据传输系统的模块组成框图;

图6为本发明实施例五提供的一种安全的数据传输设备的模块组成框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明中的方法,应用于包含系统、终端设备和卡片的数据交互过程中,其中,系统通过终端设备将数据发送给卡片,卡片根据终端设备发送来的数据执行相应操作得到操作结果,并将操作结果通过终端设备返回给系统;终端设备和系统之间是以PC端或者移动终端中的应用程序作为传输媒介进行数据交互,例如:电脑中的应用程序、手机中的应用程序等。

实施例一

本发明实施例一提供一种安全的数据传输方法中系统的处理方法,如图1所示,包括:

步骤A1:系统生成随机数作为当前随机数,发送当前随机数给终端设备,并根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥;

在本实施例中,步骤A1之前,发送当前随机数给终端设备,具体为:

系统根据当前随机数组织设置命令,发送设置命令给终端设备;

或者,

系统根据预设加密算法对当前随机数进行加密得到密文随机数,发送密文随机数给终端设备;

在本实施例中,步骤A1中,发送当前随机数给终端设备之后,还包括:

步骤a:系统接收终端设备返回的第三校验值,并判断接收到的第三校验值是否正确,是则根据当前随机数和与终端设备对应的预设密钥计算出第一密钥和第二密钥,否则结束。

上述步骤a中,判断接收到的的第三校验值是否正确,具体为:

系统将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第二校验码,判断第二校验值与第二校验码是否相等,是则确认第二校验值正确,否则确认第二校验值不正确;优选地,第一预设数据为0000000000000000。

进一步地,在本实施例中,步骤A1之前,还包括:

系统接收应用程序发送来的终端设备的设备信息,并将接收到的设备信息保存;

步骤A1中,发送当前随机数给终端设备之后,还包括:系统根据保存的设备信息获取预置的与终端设备对应的第一预设密钥和第二预设密钥;

相应地,步骤A1中,根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥,具体为:系统根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥。

在本实施例中,随机数具体为长度是16字节的数据;例如,当前随机数为:2a5b67c264f979ea3d5c46b87a32dec4,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98,计算得到的第一密钥为51ADEDEC586947D8B3CE0DB06E26FA37,计算得到的第二密钥为DE4E1819E0DADF44EA602AE5A846DC3A。

更进一步地,在本实施例中,步骤A1中,系统生成随机数作为当前随机数,发送当前随机数给终端设备,还可以为:

系统发送获取随机数请求给终端设备,接收终端设备返回的随机数,将接收到的随机数作为当前随机数并保存。

步骤A2:系统使用第一密钥对待传输报文进行加密得到第一数据域,根据预设的协议头数据组织头域,使用第二密钥对头域和第一数据域计算出第一校验值;

在本实施例中,系统使用第一密钥对待传输报文进行加密得到第一数据域,具体包括:

步骤D1:系统判断待传输报文是否需要填充,是则在待传输报文的预定位置填充预设数据得到第一待加密数据,执行步骤D2,否则将待传输报文作为第一待加密数据,执行步骤D2;

在本实施例中,系统判断待传输报文是否需要填充,具体为:

系统将待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认待传输报文无需填充;否则,确认待传输报文需要填充;

优选地,第一预设长度为2个字节,用于在待传输报文的左端填充待传输报文的长度,第二预设长度为8个字节。

进一步地,在待传输报文的预定位置填充预设数据得到第一待加密数据,具体为:

在待传输报文的左端填充待传输报文的长度,并在待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据,使第一待加密数据的长度为第二预设长度的整数倍;

优选地,在本实施例中,第二预设数据为80,第三预设数据为00。

步骤D2:系统使用第一密钥对第一待加密数据进行加密得到第一密文数据,将得到的第一密文数据作为第一数据域。

进一步地,在本实施例中,头域中Lc字节上的数据具体为第一数据域的长度与第二长度之和,优选地,第二长度为4个字节,即第一校验值的长度为4个字节;

更进一步地,在本实施例中,系统使用第二密钥对头域和第一数据域计算出第一校验值,具体为:

系统将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据进行计算得到计算结果,读取计算结果中预设字节上的数据作为第一校验值;优选地,第四数据为8000000000000000。

例如,在本实施例中,待传输报文为010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b86,填充后得到的第一待加密数据为001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000;使用第一密钥对第一待加密数据加密得到的第一数据域为7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4,根据预设的协议头数据组成的头域为7E5000002C,根据第二密钥对头域和第一数据域计算出的第一校验值为3DD52B8F。

步骤A3:系统根据头域、第一数据域和第一校验值组织指令并将指令发送给终端设备;

具体地,系统将头域、第一数据域和第一校验值顺序拼接得到指令,例如,根据上述头域、第一数据域和第一校验值组织的指令为

7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B43DD52B8F。

步骤A4:系统接收并解析终端设备返回的应答数据得到操作结果,如操作结果为操作成功,则根据预设方式更新当前随机数,结束;如操作结果为操作失败,则结束。

在本实施例中,系统接收并解析终端设备返回的应答数据得到操作结果,具体为:

系统解析接收到的应答数据得到第二数据域和第二校验值,根据第二密钥和第二校验值校验第二数据域,如果校验成功,则根据第一密钥解密第二数据域得到第二待加密数据,解析第二待加密数据得到明文应答数据,解析明文应答数据得到操作结果;如果校验失败,则结束。

例如,接收到的应答数据为164F22B44E1894BE308AFF09AB36F390AB08D6C6,其中,第二数据域为164F22B44E1894BE308AFF09AB36F390,第二校验值为AB08D6C6,第二待加密数据为00080102900002029000800000000000,明文应答数据为0102900002029000,得到的操作结果为9000,表示操作成功。

进一步地,在本实施例中,根据预设方式更新当前随机数,具体为:

系统将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;

或者,

系统将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;

或者,

系统根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。

例如,将当前随机数的值增加1后得到2a5b67c264f979ea3d5c46b87a32dec5,将2a5b67c264f979ea3d5c46b87a32dec5作为当前随机数;

更进一步地,在本实施例中,步骤A4中,还包括:

当操作结果为操作成功时,若还有待传输报文,则返回步骤A1。

本实施例还提供了一种安全的数据传输方法中终端设备的处理方法,如图2所示,包括:

步骤B1:终端设备接收系统发送来的随机数,将其作为当前随机数;

在本实施例中,步骤B1,具体为:

终端设备接收系统发送来的设置命令,解析设置命令得到随机数,将得到的随机数作为当前随机数;

或者,

终端设备接收系统发送来的密文随机数,根据预设加密算法对密文随机数解密得到随机数,将得到的随机数作为当前随机数;

在本实施例中,步骤B1之后,还包括:终端设备根据接收到的随机数计算第三校验值,并将第三校验值发送给系统;

其中,根据接收到的随机数计算第三校验值,具体为:终端设备将接收到的随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第二校验值,优选地,第一预设数据为0000000000000000。

进一步地,在本实施例中,随机数具体为长度是16字节的数据,例如,当前随机数为2a5b67c264f979ea3d5c46b87a32dec4。

更进一步地,在本实施例中,步骤B1还可以为:

步骤f:终端设备接收系统发送来的获取随机数请求,并将预设的随机数作为当前随机数返回给系统。

步骤B2:终端设备接收系统发送来的指令,解析接收到的指令得到头域、第一数据域和第一校验值;

步骤B3:终端设备根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;

具体地,终端设备读取自身预置的第一预设密钥和第二预设密钥,根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥;优选地,预设算法为3DES运算;

在本实施例中,第一预设密钥和第二预设密钥在终端设备出厂时预置在终端设备内部,例如,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98;使用第一预设密钥对当前随机数加密得到的第一密钥为51ADEDEC586947D8B3CE0DB06E26FA37,使用第二预设密钥对当前随机数加密得到第二密钥为DE4E1819E0DADF44EA602AE5A846DC3A。

步骤B4:终端设备根据第二密钥和第一校验值校验头域和第一数据域,如校验成功,则执行步骤B5;如校验失败,则返回错误码给系统,结束;

具体地,终端设备将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据计算得到计算结果,读取计算结果中预设字节上的数据作为第一校验码,判断第一校验码与第一校验值是否相同,是则确认校验成功,否则,确认校验失败;优选地,第四预设数据为8000000000000000;

步骤B5:终端设备根据第一密钥解密第一数据域得到传输报文,将传输报文发送给卡片并接收卡片返回的操作结果,如操作结果为操作成功,则组织成功应答数据并返回给系统,根据预设方式更新当前随机数,结束;如操作结果为操作失败,则组织失败应答数据并返回给系统,结束。

在本实施例中,终端设备根据第一密钥解密第一数据域得到传输报文,具体为:

终端设备根据预设算法使用第一密钥解密第一数据域得到第一待加密数据,解析第一待加密数据得到传输报文的长度,根据传输报文的长度,读取相应数据得到传输报文。

在本实施例中,终端设备组织应答数据,具体包括:

终端设备根据操作结果组织明文应答数据,根据明文应答数据组织第二待加密数据,使用第一密钥对第二待加密数据进行加密得到第二数据域,将第二数据域填充第四预设数据得到第二待校验数据,根据预设算法使用第二密钥对第二待校验数据计算出第二校验值,将第二数据域、第二校验值拼接得到应答数据。

进一步地,在本实施例中,根据预设方式更新当前随机数,具体为:

终端设备将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;

或者,

终端设备将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;

或者,

终端设备根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。

更进一步地,在本实施例中,步骤B5中,根据预设方式更新当前随机数之后,还包括:

终端设备判断等待接收数据时长是否超过预设时长,是则关机,结束,否则返回步骤B2。

实施例二

本发明实施例二提供一种安全的数据传输方法中系统的处理方法,当应用程序将获取到的终端设备的设备信息和用户输入的交易数据发送给系统之后,如图3所示,系统执行以下操作:

步骤201:系统接收来自应用程序的终端设备的设备信息和交易数据,并将设备信息保存,将交易数据作为当前交易数据,执行步骤202;

优选地,在本实施例中,设备信息为设备序列号;

例如,接收到的设备信息为2016052611122233,交易数据为100.00,其中,交易数据表示充值100元。

步骤202:系统生成随机数,将其作为当前随机数,根据当前随机数组织设置命令并发送给终端设备;

在本实施例中,随机数具体为长度是16字节的数据,例如,系统生成的随机数为:2a5b67c264f979ea3d5c46b87a32dec4;

发送的设置命令为:7E53000010012a5b67c264f979ea3d5c46b87a32dec4。

进一步地,在本实施例中,步骤202,还可以为:系统发送获取随机数请求给终端设备,接收终端设备返回的随机数,将其作为当前随机数并保存。

步骤203:系统接收终端设备返回的第三校验值,判断第三校验值是否正确,是则执行步骤204,否则返回交易失败信息给终端设备,结束;

具体地,系统将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验码,判断第三校验值与第三校验码是否相等,是则确认第三校验值正确,否则确认第三校验值不正确;

优选地,在本实施例中,第一预设数据为0000000000000000,预设算法为3DES运算,预设字节为运算结果中第一个字节至第四个字节,;

例如,在本实施例中,系统接收到的第二校验值为D49C25C6,系统将当前随机数2a5b67c264f979ea3d5c46b87a32dec4与第一预设数据0000000000000000进行3DES运算得到运算结果D49C25C67C864FB2,读取运算结果第一个字节至第四个字节上的数据D49C25C6作为第三校验码,与第三校验值相同,则确认第三校验值正确。

进一步地,在本实施例中,当系统返回交易失败信息给终端设备时,还包括PC端或者移动终端中的应用程序显示交易失败信息。

步骤204:系统根据保存的设备信息获取对应的终端设备的第一预设密钥和第二预设密钥并保存;

需要说明地,第一预设密钥和第二预设密钥在终端设备出厂时预先设定并保存在终端设备中和系统中;

具体地,系统在安全数据库中查找到与保存的设备信息相同的设备信息,读取其对应的第一预设密钥和第二预设密钥,并将其保存到预设存储区中;例如,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98。

步骤205:系统使用保存的第一预设密钥对当前随机数进行加密得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;

优选地,系统将保存的第一预设密钥与当前随机数进行3DES运算得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;

例如,在本实施例中,根据保存的第一预设密钥b2a4c87d52e4f6c2514a3b5d85c9e3f0对当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到密文第一预设密钥51ADEDEC586947D8B3CE0DB06E26FA37,将其作为当前第一密钥。

步骤206:系统使用保存的第二预设密钥对当前随机数进行加密得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;

优选地,系统将保存的第二预设密钥与当前随机数进行3DES运算得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;

例如,在本实施例中,将保存的第二预设密钥4A1989E4A1917E984A1989E4A1917E98与当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到密文第二预设密钥DE4E1819E0DADF44EA602AE5A846DC3A,将其作为当前第二密钥。

步骤207:系统根据当前交易信息组织待传输报文,并将组织的待传输报文作为当前待传输报文;

例如,系统根据上述当前交易信息“充值100.00元”,组织得到当前待传输报文为010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b86。

步骤208:系统使用当前第一密钥对当前待传输报文加密得到当前密文待传输报文,将当前密文待传输报文作为当前第一数据域;

在本实施例中,步骤208具体包括:

步骤208-1:系统判断当前待传输报文是否需要填充,是则执行步骤208-2,否则执行步骤208-4;

具体地,系统将当前待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认当前待传输报文无需填充,否则确认当前待传输报文需要填充;

优选地,在本实施例中,第一预设长度为2个字节,用于填充当前待传输报文的长度,第二预设长度为8个字节。

步骤208-2:系统在当前待传输报文的预定位置填充预设数据得到当前第一待加密数据,使当前第一待加密数据的长度为第二预设长度的整数倍;

优选地,系统在当前待传输报文的左端填充当前待传输报文的长度,且占用2个字节,并在当前待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据;优选地,第二预设数据为80,第三预设数据为00;

例如,在本实施例中,当前待传输报文的长度为31个字节,转换为二进制表示为001F,可知需要填充6个字节的00;则将当前待传输报文的长度001F填充在当前待传输报文的左端,并占用2个字节,在当前待传输报文的右端填充1个字节的80和6个字节的00,得到当前第一待加密数据001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000,当前待加密数据的长度为40个字节。

步骤208-3:系统使用当前第一密钥对当前第一待加密数据进行加密得到当前第一密文待传输报文,将当前第一密文待传输报文作为当前第一数据域;

优选地,系统根据3DES算法使用当前第一密钥对当前第一待加密数据进行加密;

例如,在本实施例中,系统根据3DES算法使用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37对当前第一待加密数据001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000进行加密,得到的当前第一数据域为7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4。

步骤208-4:系统将当前待传输报文作为当前第一待加密数据,使用当前第一密钥对当前第一待加密数据进行加密得到当前第一密文待传输报文,将当前第一密文待传输报文作为当前第一数据域;

具体地,系统根据3DES算法使用当前第一密钥对当前待传输报文进行加密得到当前第一密文待传输报文。

步骤209:系统根据预设的协议头数据组织当前头域;

在本实施例中,头域具体包括CLA、INS、P1、P2、Lc,其中Lc具体为当前第一数据域的长度与第二长度之和,其中第二长度为4个字节,即校验得到的当前第一校验值的长度;

例如,在本实施例中,组织得到的当前头域为7E5000002C。

步骤210:系统使用当前第二密钥对当前头域和当前第一数据域计算出当前第一校验值,并根据当前头域、当前第一数据域和当前第一校验值组织当前指令,并将当前指令发送给终端设备;

具体地,系统将当前头域和当前第一数据域顺序拼接后的数据填充第四预设数据得到当前第一待校验数据,根据预设算法用当前第二密钥对当前第一待校验数据计算得到计算结果,取计算结果中预设字节上的数据作为当前第一校验值,并将当前头域、当前第一数据域和当前第一校验值顺序拼接得到当前交易指令;

优选地,第四预设数据为8000000000000000,预设算法为3DES运算,预设字节为计算结果中第一个字节至第四个字节;

例如,在本实施例中,得到当前第一待校验数据为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B48000000000000000,使用当前第二密钥DE4E1819E0DADF44EA602AE5A846DC3A对当前第一待校验数据计算得到的计算结果为3DD52B8FD0E97498,当前第一校验值为3DD52B8F,当前指令为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B43DD52B8F。

步骤211:系统根据当前第二密钥校验当前应答数据,如校验成功,则执行步骤212;如校验失败,则返回交易结束信息给终端设备,结束;

需要说明地,在本实施例中,当前应答数据具体为“当前第二数据域+当前第二校验值”的形式;

具体地,系统解析当前应答数据得到第二数据域和第二校验值,根据当前第二密钥对当前第二数据域计算当前第二校验码,判断计算得到的当前第二校验码与当前第二校验值是否相同,是则确认校验成功,否则确认校验失败;

更加具体地,系统读取当前应答数据中最后四个字节上的数据得到当前第二校验值,将除去当前第二校验值的其他数据作为当前第二数据域;

例如,在本实施例中,当前应答数据为164F22B44E1894BE308AFF09AB36F390AB08D6C6,当前第二校验值为AB08D6C6,当前第二数据域为164F22B44E1894BE308AFF09AB36F390;系统将当前第二密钥DE4E1819E0DADF44EA602AE5A846DC3A对当前第二数据域计算得到当前第二校验码为AB08D6C6,确认当前应答数据合法。

进一步地,在本实施例中,当系统返回交易失败信息给终端设备时,还包括:PC端或者移动终端中的应用程序显示交易失败。

步骤212:系统根据当前第一密钥解密当前应答数据得到当前明文应答数据,解析当前明文应答数据得到当前操作结果,如当前操作结果为操作成功,则执行步骤213;如当前操作结果为操作失败,则交易失败,结束;

具体地,系统使用当前第一密钥解密当前第二数据域得到当前第二待加密数据,解析第二待加密数据得到当前明文应答数据,解析当前明文应答数据得到当前操作结果;

更加具体地,系统根据3DES算法用当前第一密钥解密当前第二数据域得到当前第二待加密数据,读取当前第二待加密数据中前两个字节上的数据得到当前明文应答数据的长度,根据当前明文应答数据的长度读取当前第二待加密数据中第三个字节(含第三个字节)之后的相应数据得到当前明文应答数据,解析当前明文应答数据得到当前操作结果;

例如,在本实施例中,系统根据3DES算法用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37解密当前第二数据域164F22B44E1894BE308AFF09AB36F390得到的当前第二待加密数据为00080102900002029000800000000000,当前明文应答数据为0102900002029000,得到的当前操作结果为9000,即操作成功。

进一步地,在本实施例中,当当前操作结果为操作失败时,还包括:PC端或者移动终端中的应用程序显示交易失败。

步骤213:系统判断本次交易是否结束,是则结束,否则根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,将当前操作结果作为当前交易信息,返回步骤205。

在本实施例中,根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,具体为:

系统将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;

或者,

系统将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;

或者,

系统根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。

需要说明地,系统与终端设备采用相同的方式更新当前随机数。

优选地,在本实施例中,将当前随机数的值增加1后的值作为当前随机数,例如,得到当前随机数位2a5b67c264f979ea3d5c46b87a32dec5;

进一步地,在本实施例中,当交易结束时,还包括:PC端或者移动终端中的应用程序显示交易结束信息。

更进一步地,在本实施例中,步骤202之前可以包括:

步骤e1:系统判断当前交易是否为首次交易,是则执行步骤202,否则执行步骤e2;

具体地,系统判断是否接收到设备信息,是则确认当前交易为首次交易,否则确认当前交易不是首次交易。

步骤e2:系统将当前随机数改变预设步长后,作为当前随机数,执行步骤205。

相应地,步骤213替换为:

步骤213’:系统判断本次交易是否结束,是则结束,否则将当前操作结果作为当前交易数据,返回步骤e1。

实施例三

本发明实施例三提供一种安全的数据传输方法中终端设备的处理方法,如图4所示,包括:

步骤301:终端设备等待并接收系统发送来的设置命令,解析设置命令得到随机数,将其作为当前随机数并保存;

具体地,终端设备接收系统发送来的设置命令,读取设置命令中第7个字节至最后一个字节上的数据得到随机数,将其作为当前随机数并保存;

在本实施例中,随机数具体为长度是16字节的数据;例如,终端设备接收到的设置命令为7E53000010012a5b67c264f979ea3d5c46b87a32dec4,读取的随机数为2a5b67c264f979ea3d5c46b87a32dec4。

在本实施例中,步骤301还可以为:终端设备接收系统发送来的获取随机数请求,并将预设的随机数作为当前随机数返回给系统。

进一步地,在本实施例中,步骤301之前,还包括:终端设备接收应用程序发送来的获取设备信息指令,并读取自身的设备信息并发送给应用程序;

优选地,在本实施例中,设备信息具体为设备的序列号,终端设备接收到获取设备信息指令为7E52000001;

更加具体地,在获取设备信息指令中,优选地,当第五个字节上的数据为01时,表示获取终端设备的序列号,当第五个字节上的数据为02时,表示获取终端设备的蓝牙名称,当第五个字节上的数据为03时,表示获取终端设备的固件版本号,当第五个字节上的数据为04时,表示获取卡片的状态,当第五个字节上的数据为00时,表示获取上述所有信息;

例如,在本实施例中,终端设备读取到的自身的序列号为2016052611122233。

步骤302:终端设备根据当前随机数计算第三校验值,并将第三校验值发送给系统;

具体地,终端设备将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验值,并将第三校验值发送给系统;

优选地,在本实施例中,第一预设数据为0000000000000000,预设算法为3DES运算,预设字节为运算结果中第一个字节至第四个字节;

例如,在本实施例中,终端设备将当前随机数2a5b67c264f979ea3d5c46b87a32dec4与0000000000000000进行3DES运算得到运算结果D49C25C67C864FB2,终端设备读取运算结果第一个字节至第四个字节上的数据D49C25C6作为第三校验值,并发送给系统;

需要说明地,在本实施例中,系统接收到第三校验值后,对第三校验值进行校验,当校验失败时,还包括:终端设备接收系统返回的交易结束信息,且PC端或者移动终端中的应用程序显示交易失败信息。

步骤303:终端设备等待并接收系统发送来的指令,并将其作为当前指令;

例如,接收到的当前指令为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B43DD52B8F。

步骤304:终端设备解析当前指令得到当前头域、当前第一数据域和当前第一校验值;

具体地,终端设备读取当前指令前五个字节上的数据得到当前头域,读取当前指令最后四个字节上的数据得到当前第一校验值,中间的数据为当前第一数据域;

例如,在本实施例中,根据上述当前指令,得到当前头域为7E5000002C,当前第一数据域为7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4,当前第一校验值为3DD52B8F。

步骤305:终端设备读取自身预置的第一预设密钥,使用第一预设密钥对当前随机数进行加密得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;

在本实施例中,第一预设密钥在终端设备出厂时预定并保存在终端设备的内部,例如,第一预设密钥为b2a4c87d52e4f6c2514a3b5d85c9e3f0;

优选地,系统将第一预设密钥与当前随机数进行DES运算得到密文第一预设密钥,将密文第一预设密钥作为当前第一密钥;

例如,在本实施例中,将第一预设密钥b2a4c87d52e4f6c2514a3b5d85c9e3f0与当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到51ADEDEC586947D8B3CE0DB06E26FA37,将其作为当前第一密钥。

步骤306:终端设备读取自身预置的第二预设密钥,使用第二预设密钥对当前随机数进行加密得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;

在本实施例中,第二预设密钥在终端设备出厂时预定且保存在终端设备的内部,例如,第二预设密钥为4A1989E4A1917E984A1989E4A1917E98;

优选地,在本实施例中,系统将当前第二预设密钥与当前随机数进行3DES运算得到密文第二预设密钥,将密文第二预设密钥作为当前第二密钥;

例如,在本实施例中,将第二预设密钥4A1989E4A1917E984A1989E4A1917E98与当前随机数2a5b67c264f979ea3d5c46b87a32dec4进行3DES运算得到DE4E1819E0DADF44EA602AE5A846DC3A,将其作为当前第二密钥;

可选地,在本实施例中,步骤305和步骤306的顺序可以对换。

步骤307:终端设备根据当前第二密钥、和当前第一校验值校验当前头域和当前第一数据域,如校验成功,则执行步骤308,如校验失败,则返回错误码给系统,结束;

具体地,终端设备将当前头域和当前第一数据域顺序拼接后的数据填充第四预设数据得到当前第一待校验数据,根据预设算法使用第二密钥对当前第一待校验数据计算得到计算结果,读取计算结果中预设字节上的数据作为当前第一校验码,判断当前第一校验码与当前第一校验值是否相同,是则确认校验成功,否则,确认校验失败;

优选地,第四预设数据为8000000000000000,预设算法为3DES运算,预设字节为计算结果中第一个字节至第四个字节;

例如,在本实施例中,得到当前第一待校验数据为7E5000002C7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B48000000000000000,使用当前第二密钥DE4E1819E0DADF44EA602AE5A846DC3A对当前第一待校验数据计算得到的计算结果为3DD52B8FD0E97498,当前第一校验码为3DD52B8F,确认当前第一校验值正确。

进一步地,在本实施例中,当交易失败时,还包括:PC端或者移动终端中的应用程序显示交易失败信息。

步骤308:终端设备使用当前第一密钥解密当前指令得到当前传输报文;

具体地,终端设备根据预设算法使用当前第一密钥解密当前第一数据域得到当前第一待加密数据,解析当前第一待加密数据得到当前传输报文的长度,根据当前传输报文的长度,读取相应数据得到当前传输报文;

更加具体地,终端设备根据3DES算法使用当前第一密钥解密当前第一数据域得到当前第一待加密数据,读取当前第一待加密数据中前两个字节上的数据得到当前传输报文的长度,根据当前传输报文的长度,读取当前第一待加密数据中第三个字节(含第三个字节)之后的相应数据得到当前传输报文;

例如,在本实施例中,根据3DES算法使用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37对当前第一数据域7B7376FB9B1E0B75DA7F01BEA2CDAF5E75923506ABEDF2712979BFD336276DA033ADF348C83188B4进行解密得到的当前第一待加密数据为001F010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b8680000000000000,当前传输报文的长度为001F,当前传输报文为010C00A4040007A0000003330101020E04DA9F790A0000000100003def5b86。

步骤309:终端设备发送当前传输报文给卡片并接收卡片返回的当前操作结果,如当前操作结果为操作成功,则执行步骤310,如当前操作结果为操作失败,则组织失败应答数据,并将失败应答数据作为当前应答数据返回给系统,结束;

在本实施例中,步骤309还包括:当终端设备自身出现错误时,终端设备将错误码作为当前应答数据返回给系统,结束;

进一步地,在本实施例中,组织失败应答数据的方法同组织成功应答数据的方法相同,不再赘述。

步骤310:终端设备根据当前操作结果组织当前明文成功应答数据;

例如,在本实施例中,组织的当前成功明文应答数据为:0102900002029000。

步骤311:终端设备根据当前第一密钥对当前明文成功应答数据进行加密得到当前密文成功应答数据,将当前密文成功应答数据作为当前第二数据域;

在本实施例中,步骤311具体包括:

步骤311-1:终端设备判断当前明文成功应答数据是否需要填充,是则执行步骤311-2,否则执行步骤311-4;

具体地,终端设备将当前明文成功应答数据的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认当前明文成功应答数据无需填充,否则确认当前明文成功应答数据需要填充;

优选地,在本实施例中,第一预设长度为2个字节,用于填充当前明文成功应答数据的长度,第二预设长度为8个字节;

步骤311-2:终端设备将当前明文成功应答数据的预定位置填充预设数据得到当前第二待加密数据,使当前第二待加密数据的长度为第二预设长度的整数倍;

优选地,终端设备在当前明文成功应答数据的左端填充当前明文成功应答数据的长度,并占用2个字节,在当前明文成功应答数据的右端填充1个字节的第二预设数据和最少字节的第三预设数据得到当前第二待加密数据,使当前第二待加密数据的长度为8字节的整数倍;优选地,第二预设数据为80,第三预设数据为00;

例如,在本实施例中,当前明文应答数据的长度为8个字节,转换为二进制表示为0008,可知需要填充5个字节的00;则将0008填充在当前明文应答数据的左端,并占用2个字节,在当前明文应答数据的右端填充1个字节的80和5个字节的00,得到的当前第二待加密数据为00080102900002029000800000000000;

步骤311-3:终端设备使用当前第一密钥对当前第二待加密数据进行加密得到当前密文成功应答数据,将当前密文成功应答数据作为当前第二数据域;

具体地,终端设备根据3DES算法使用当前第一密钥对当前第二待加密数据进行加密;

例如,在本实施例中,终端设备根据3DES算法使用当前第一密钥51ADEDEC586947D8B3CE0DB06E26FA37对上述当前第二待加密数据进行加密得到当前第二数据域为164F22B44E1894BE308AFF09AB36F390。

步骤311-4:终端设备将当前明文成功应答数据作为当前第二待加密数据,使用当前第一密钥对当前第二待加密数据进行加密得到当前密文成功应答数据,将当前密文成功应答数据作为当前第二数据域。

步骤312:终端设备使用当前第二密钥对当前第二数据域计算出当前第二校验值;

具体地,终端设备对当前第二数据域进行数据填充得到当前第二待校验数据,根据3DES算法用当前第二密钥对当前第二待校验数据计算得到计算结果,取计算结果第一个字节至第四个字节上的数据作为当前第二校验值;

优选地,系统在当前第二数据域的右端填充第四数据得到当前第二待校验数据,第四数据为8000000000000000;

例如,在本实施例中,当前第二待校验数据为164F22B44E1894BE308AFF09AB36F3908000000000000000,使用当前第二密钥对其计算得到的计算结果为AB08D6C64514AFAB,当前第二校验值为AB08D6C6。

步骤313:终端设备根据当前第二数据域和当前第二校验值组织当前成功应答数据,并将当前成功应答数据作为当前应答数据发送给系统;

具体地,终端设备将当前第二数据域与当前第二校验值顺序拼接得到当前成功应答数据,并将当前成功应答数据作为当前应答数据发送给系统;

例如,在本实施例中,终端设备根据当前第二数据域和当前第二校验值组织得到的当前应答数据为164F22B44E1894BE308AFF09AB36F390AB08D6C6。

步骤314:终端设备根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,进入空闲状态,当接收到系统发送的指令时,将接收到的指令作为当前指令,返回步骤304;

在本实施例中,根据预设方式更新当前随机数,将更新后的随机数作为当前随机数,具体为:

终端设备将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;

或者,

终端设备将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;

或者,

终端设备根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。

需要说明地,终端设备与系统采用相同的方式更新当前随机数;

优选地,在本实施例中,将当前随机数的值增加1后的值作为当前随机数,例如,得到当前随机数为2a5b67c264f979ea3d5c46b87a32dec5;

进一步地,在本实施例中,当终端设备处于空闲状态超过预设时长时,自动关机;优选地,在本实施例中,预设时长为3分钟。

实施例四

本发明实施例四提供一种安全的数据传输系统,如图5所示,包括:

生成模块401,用于生成随机数作为当前随机数;

第一发送模块402,用于发送生成模块401生成的当前随机数给终端设备;

第一计算模块403,用于根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥;

加密模块404,用于使用第一计算模块403计算出的第一密钥对待传输报文进行加密得到第一数据域;

第一组织模块405,用于根据预设的协议头数据组织当前头域;

第二计算模块406,用于使用第一计算模块403计算出的第二密钥对头域和第一数据域计算出第一校验值;

第二组织模块407,用于根据头域、第一数据域和第一校验值组织指令;

第二发送模块408,用于将第二组织模块407组织的指令发送给终端设备;

接收模块409,用于接收终端设备返回的应答数据;

解析模块410,用于解析接收模块409接收到的应答数据得到操作结果;

更新模块411,用于当解析模块410得到的操作结果为操作成功时,根据预设方式更新当前随机数。

在本实施例中,第一发送模块402,具体用于:

根据当前随机数组织设置命令,发送设置命令给终端设备;

或者,

根据预设加密算法对当前随机数进行加密得到密文随机数,发送密文随机数给终端设备。

本实施例中的系统,还包括:第一判断模块;

相应地,接收模块409,还用于第一发送模块402发送生成模块401生成的当前随机数给终端设备之后,接收终端设备返回的第三校验值;

第一判断模块,用于判断第三校验值是否正确;

第一计算模块403,具体用于:当第一判断模块判断出第三校验值正确时,根据当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥。

进一步地,在本实施例中,第一判断模块,具体用于:

将当前随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验码,判断第三校验值与第三校验码是否相等,是则确认第三校验值正确,否则确认第三校验值不正确。

本实施例中的系统,还包括:第一获取模块;

接收模块409,还用于生成模块401生成随机数作为当前随机数之前,接收应用程序发送来的终端设备的设备信息,并将接收到的设备信息保存;

第一获取模块,用于根据接收模块409保存的设备信息获取预置的与终端设备对应的第一预设密钥和第二预设密钥;

相应地,第一计算模块403,具体用于:根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥。

在本实施例中,加密模块404,具体包括:判断子模块、填充子模块、作为子模块和加密子模块;

其中,判断子模块,用于判断待传输报文是否需要填充;

填充子模块,用于当判断子模块判断出待传输报文需要填充时,在待传输报文的预定位置填充预设数据得到第一待加密数据;

作为子模块,用于当判断子模块判断出待传输报文不需要填充时,将待传输报文作为第一待加密数据;

加密子模块,用于使用第一密钥对填充子模块得到的第一待加密数据进行加密得到第一密文数据,将第一密文数据作为第一数据域;还用于使用第一密钥对作为子模块得到的第一待加密数据进行加密得到第一密文数据,将第一密文数据作为第一数据域。

更加具体地,在本实施例中,上述判断子模块,具体用于:将待传输报文的长度与第一预设长度求和,判断求得的和是否为第二预设长度的整数倍,是则确认待传输报文无需填充;否则,确认待传输报文需要填充;

填充子模块,具体用于:在待传输报文的左端填充待传输报文的长度,并在待传输报文的右端填充一个字节的第二预设数据和最少字节的第三预设数据,使第一待加密数据的长度为第二预设长度的整数倍。

进一步地,在本实施例中,第二计算模块406,具体用于:将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据进行计算得到计算结果,读取计算结果中预设字节上的数据作为当前第一校验值。

进一步地,第二组织模块407,具体用于:将头域、第一数据域和第一校验值顺序拼接得到指令。

进一步地,解析模块410,具体用于:

解析接收模块409接收到的应答数据得到第二数据域和第二校验值,根据第二密钥和第二校验值校验第二数据域,如果校验成功,则根据第一密钥解密第二数据域得到第二待加密数据,解析第二待加密数据得到明文应答数据,解析明文应答数据得到操作结果,否则交易失败,结束。

进一步地,更新模块411,具体用于:

将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;

或者,

将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;

或者,

根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。

更进一步地,本实施例中的系统,第一计算模块403,还用于:当操作结果为操作成功时,若还有待传输报文,则根据更新模块411得到的当前随机数和与终端设备对应的预置密钥计算出第一密钥和第二密钥。

第一发送模块402,还可以用于发送获取随机数请求给终端设备;

对应地,接收模块409,还用于接收终端设备返回的随机数,将接收到的随机数作为当前随机数并保存。

实施例五

本发明实施例五提供一种安全的数据传输设备,如图6所示,包括:

第一接收模块501,用于接收系统发送来的随机数,将其作为当前随机数;

第二接收模块502,用于接收系统发送来的指令;

解析模块503,用于解析第二接收模块502接收到的指令得到头域、第一数据域和第一校验值;

第一计算模块504,用于根据当前随机数和自身的预置密钥计算出第一密钥和第二密钥;

校验模块505,用于根据第二密钥和第一校验值校验头域和第一数据域;

发送模块506,用于当校验模块505校验失败时,返回错误码给系统,结束;

解密模块507,用于当校验模块505校验成功时,使用第一密钥解密第一数据域得到传输报文;

发送模块506,还用于将解密模块507得到的传输报文发送给卡片;

第三接收模块508,用于接收卡片返回的操作结果;

组织模块509,用于当第三接收模块508接收到的操作结果为操作成功时,组织成功应答数据;还用于当第三接收模块508接收到的操作结果为操作失败时,组织失败应答数据;

发送模块506,还用于将组织模块509组织的成功应答数据返回给系统;还用于将组织模块509组织的失败应答数据返回给系统;

更新模块510,用于当发送模块506将组织模块509组织的成功应答数据返回给系统之后,根据预设方式更新当前随机数。

在本实施例中,第一接收模块501,具体用于:

接收系统发送来的设置命令,解析所述设置命令得到随机数,将得到的随机数作为当前随机数;

或者,

接收系统发送来的密文随机数,根据预设加密算法对密文随机数解密得到随机数,将得到的随机数作为当前随机数。

本实施例中的设备,还包括:第二计算模块;

第二计算模块,用于第一接收模块501接收系统发送来的随机数,将其作为当前随机数之后,根据第一接收模块501接收到的随机数计算第三校验值;

发送模块506,还用于将第二计算模块计算的第三校验值发送给系统。

在本实施例中,上述第二计算模块,具体用于:

将第一接收模块501接收到的随机数与第一预设数据做预设运算得到运算结果,读取运算结果中预设字节上的数据作为第三校验值。

进一步地,在本实施例中,第一计算模块504,具体用于:

读取自身预置的第一预设密钥和第二预设密钥,根据预设算法使用第一预设密钥对当前随机数加密得到第一密钥,使用第二预设密钥对当前随机数加密得到第二密钥。

进一步地,校验模块505,具体用于:

将头域和第一数据域顺序拼接后的数据填充第四预设数据得到第一待校验数据,根据预设算法使用第二密钥对第一待校验数据计算得到计算结果,读取计算结果中预设字节上的数据作为第一校验码,判断第一校验码与第一校验值是否相同,是则确认校验成功,否则,确认校验失败。

进一步地,解密模块507,具体用于:

根据预设算法使用第一密钥解密第一数据域得到第一待加密数据,解析第一待加密数据得到传输报文的长度,根据传输报文的长度,读取相应数据得到传输报文。

进一步地,组织模块509,具体用于:

根据当前操作结果组织明文应答数据,根据明文应答数据组织第二待加密数据,使用第一密钥对第二待加密数据进行加密得到第二数据域,将第二数据域填充第四预设数据得到第二待校验数据,根据预设算法使用第二密钥对第二待校验数据计算出当前第三校验值,将第二数据域、第三校验值拼接得到应答数据。

进一步地,更新模块510,具体用于:

将当前随机数改变预设步长,将改变预设步长后的值作为当前随机数;

或者,

将当前随机数作为种子随机数,根据种子随机数生成新的随机数,将新的随机数作为当前随机数;

或者,

根据预设算法对当前随机数进行计算得到计算结果,将计算结果作为当前随机数。

更进一步地,本实施例中的设备,还包括:判断模块和关机模块;

其中,判断模块,用于当更新模块510根据预设方式更新当前随机数之后,判断等待接收数据时长是否超过预设时长;

关机模块,用于当判断模块判断出等待接收数据时长超过预设时长时,关机,结束;

第二接收模块502,还用于当判断模块判断出等待接收数据时长未超过预设时长时,接收系统发送来的指令。

本实施例中的设备,第一接收模块501,还可以用于接收系统发送来的获取随机数请求;

相应地,发送模块506,还可以用于第一接收模块501接收到系统发送来的获取随机数请求之后,将预设的随机数作为当前随机数返回给系统。

本发明中的技术方案,在终端设备与后台系统进行数据传输时,每次采用不同的密钥对数据进行加解密,保证了数据传输的安全性。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1