CN103345683A - 基于电子钱包的离线充值方法及系统 - Google Patents
基于电子钱包的离线充值方法及系统 Download PDFInfo
- Publication number
- CN103345683A CN103345683A CN201310296966XA CN201310296966A CN103345683A CN 103345683 A CN103345683 A CN 103345683A CN 201310296966X A CN201310296966X A CN 201310296966XA CN 201310296966 A CN201310296966 A CN 201310296966A CN 103345683 A CN103345683 A CN 103345683A
- Authority
- CN
- China
- Prior art keywords
- money
- random number
- charge code
- code
- signaling
- 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.)
- Granted
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于电子钱包的离线充值方法及系统,涉及电子钱包充值领域,该方法为:用户将充值金额和EPID发到充值码生成服务器端,充值码生成服务器端获取到用户发来的充值金额及EPID后,将充值金额及EPID进行转换和加密运算,生成字节码方式的充值码;充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,以与用户请求一致的形式,将数字串方式的充值码发送给用户;用户将数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值。本发明不需要借助无线POS充值,用户根据电子钱包充值码,在相应的电子钱包上完成离线充值,充值过程不需第三方配合。
Description
技术领域
本发明涉及电子钱包充值领域,特别是涉及一种基于电子钱包的离线充值方法及系统。
背景技术
由于电子钱包在执行充值时,涉及到资金的相互转移,因此用户必须将电子钱包卡或拥有电子钱包功能的终端设备,拿到指定的充值场所,在双方有效认证的前提下,才能进行充值;如此,给用户带来了很大的不便,如果充值点个数稀少,充值点覆盖率低,则用户可能会为了简单的充值而劳累一天的行程,同时也给充值点带来了巨大的负荷,更有可能由于用户量过多,而无法满足众多用户的充值需求,目前只有建立大量的实体充值点,投入大量的人力和物力,才能满足不断增长的客户需求。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于电子钱包的离线充值方法及系统,不需要借助无线POS进行刷卡充值,终端用户根据电子钱包充值码,在相应的电子钱包上完成离线充值,充值过程不需要第三方进行配合处理。
本发明提供的基于电子钱包的离线充值方法及系统,包括以下步骤:
S1、用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;
S2、充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为4个数字码,充值信令为20个数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
S3、充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
S4、用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5个BCD随机效验码;第二部分为充值信令:20个BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20个BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20个BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
在上述技术方案的基础上,步骤S2中所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
在上述技术方案的基础上,步骤S2中所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
本发明还提供一种基于电子钱包的离线充值系统,包括装载有电子钱包卡的电子钱包终端,电子钱包卡是一张含有小型计算单元的卡片,电子钱包终端是装载有电子钱包卡的终端设备,还包括充值码生成服务器端,用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为4个数字码,充值信令为20个数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5个BCD随机效验码;第二部分为充值信令:20个BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20个BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20个BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
在上述技术方案的基础上,所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
在上述技术方案的基础上,所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
在上述技术方案的基础上,如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
与现有技术相比,本发明的优点如下:
(1)本发明提供的电子钱包离线充值方法及系统,不需要借助无线POS进行刷卡充值;用户能够通过购买充值卡方式、营业厅业务办理方式、个人中心办理方式等多种途径,获取电子钱包充值码,终端用户根据电子钱包充值码,在相应的电子钱包上完成离线充值,充值过程不需要第三方进行配合处理,无需建立大量的实体充值点,能够节省人力和物力。
(2)本发明考虑到电子钱包卡的存储能力有限,在存储充值记录时,采用二维填表方式,每充值成功1次,则将对应的地址空间的标签置为已处理;下次如果有相同的地址信息到来,则能够阻止其充值,避免了一码多充问题。
(3)本发明在终端电子钱包卡上维护用户的充值记录表及相关历史充值信息,以方便日后追溯;此外,充值信息以密文形式保存到卡端,方便用户追溯处理充值码操作失败或其它情况的错误。
附图说明
图1是本发明实施例中基于电子钱包的离线充值方法的流程图。
图2是本发明实施例中充值码的结构框图。
图3是本发明实施例中生成随机数的流程图。
图4是本发明实施例中充值码解密的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明实施例提供一种基于电子钱包的离线充值系统,包括充值码生成服务器端和装载有电子钱包卡的电子钱包终端,电子钱包卡是一张含有小型计算单元的卡片,电子钱包终端是装载有电子钱包卡的终端设备,例如:机顶盒、手机、PDA(Personal Digital Assistant,个人数字处理)等。
参见图1所示,本发明实施例提供一种基于电子钱包的离线充值方法,包括以下步骤:
S1、用户可以通过各种不同的方式,例如:短信方式,电话方式,web方式等,将充值金额信息和EPID(Electronic Purse Identity,电子钱包唯一标识)信息发送到充值码生成服务器端,即电子钱包服务器端;
S2、充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
S3、充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户;考虑到充值码的使用场景为各种不同终端,由于目前大部分终端仅采用数字键盘方式,即只包括0~9几个简单字符,因此充值码采用数字码方式告知用户,使其能在不同终端输入该充值码;
S4、用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值。
参见图2所示,充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用HEX(HEXadecimal,十六进制数)转BCD码(Binary-Coded Decimal,二-十进制代码)方式,将字节码数据转换为用户可输入的数字串,随机效验码为4个数字码,充值信令为20个数字码;充值信令由充值信令头和MAC(MessageAuthentication Code,消息认证码)消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】。生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后,将地址序列置为1;否则,只需将地址序列的数据左移1位。充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,具体计算方式参见图4所示。MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值。
参见图3所示,充值码生成服务器端随机生成两字节的RS(Random Source,原始随机数据),原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的RD(Result-Random Data,随机数最终值),该随机数最终值RD用来生成MAC过程密钥及充值过程密钥。
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到RIDX(Random Index,随机数索引)的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头(充值流水号,充值方式及充值金额)信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC(MessageAuthentication Code Session Key,消息认证码过程密钥);加密机采用Tri-DES(Triple Data Encryption Standard,三重数据加密算法)算法,对MSEC和MAC源数据(充值信令头+EPID)进行计算,最终生成与EPID对应的MAC消息认证码。在进行Tri_DES操作前,需要确保MAC源数据(充值信令头+EPID)为8的整数倍字节,如果提供的MAC源数据不满足条件,则需要在高字节的地方,以0x00的方式补齐数据。
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头(充值流水号,充值方式及充值金额)、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的RSEC(Recharge Session Key,充值过程密钥);加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据(充值信令头+MAC)进行计算,最终生成与EPID对应的加密充值码。在进行Tri_DES操作前,需要确保充值码源数据(充值信令头+MAC)为8的整数倍字节,如果提供的充值码源数据不满足条件,则需要在高字节的地方,以0x00的方式补齐数据。
充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码。
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令。电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型,即5个BCD随机效验码;第二部分为充值信令,即20个BCD的充值信令。电子钱包终端首先采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式。
参见图4所示,电子钱包终端的解密流程如下:
用户输入的充值码的前5位BCD码(即原始随机数据RS)为解密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的Card ID(Card Identity,卡标识)与RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK(Credit For Load Session Key,圈存过程密钥);电子钱包卡将充值码的后20个BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20个BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令。
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的可靠合法性。电子钱包卡获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1。电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型属在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。
Claims (10)
1.一种基于电子钱包的离线充值方法,其特征在于,包括以下步骤:
S1、用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;
S2、充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为4个数字码,充值信令为20个数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
S3、充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
S4、用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5个BCD随机效验码;第二部分为充值信令:20个BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20个BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20个BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
2.如权利要求1所述的基于电子钱包的离线充值方法,其特征在于:步骤S2中所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
3.如权利要求2所述的基于电子钱包的离线充值方法,其特征在于:如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
4.如权利要求1或2或3所述的基于电子钱包的离线充值方法,其特征在于:步骤S2中所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
5.如权利要求4所述的基于电子钱包的离线充值方法,其特征在于:如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
6.一种基于电子钱包的离线充值系统,包括装载有电子钱包卡的电子钱包终端,电子钱包卡是一张含有小型计算单元的卡片,电子钱包终端是装载有电子钱包卡的终端设备,其特征在于:还包括充值码生成服务器端,用户将充值金额信息和电子钱包唯一标识EPID信息发送到充值码生成服务器端,即电子钱包服务器端;充值码生成服务器端获取到用户发来的充值金额信息及EPID信息后,将充值金额信息及EPID信息进行一系列的转换和加密运算,生成字节码方式的充值码;
所述充值码由随机效验码和充值信令组成,随机效验码为明文,充值信令为密文,系统采用十六进制数HEX转二-十进制代码BCD码方式,将字节码数据转换为数字串,随机效验码为4个数字码,充值信令为20个数字码;充值信令由充值信令头和MAC消息认证码组成,充值信令头由充值流水号、充值方式、充值金额组成,充值流水号由地址码和地址序列组成,地址码的取数区间为0~2047,地址序列的取值范围为【1,2,4,8,16,32,64,128】;生成充值码时,如果检验到上次对应的地址序列为128,则将对应的地址码数字做加1处理,然后将地址序列置为1;否则,将地址序列的数据左移1位;充值流水号用于避免用户重复充值,充值方式用于描述充值码的生成源方式,充值金额为该充值码对应的金额,单位为元,MAC消息认证码由EPID、充值码流水号、充值方式和充值金额组合计算得到,MAC消息认证码用于避免同一充值码在多个不同电子钱包上进行充值;
充值码生成服务器端随机生成两字节的原始随机数据RS,原始随机数据RS与8字节的EPID进行同或操作,得到同或处理结果:数据A;原始随机数据RS与8字节的EPID进行异或操作,得到异或处理结果:数据B;将数据A、B组合,数据A放高位,数据B放低位,得到16字节长度的随机数最终值RD,该随机数最终值RD用来生成MAC过程密钥及充值过程密钥;
MAC消息认证码的计算流程如下:随机数最终值RD为MAC过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、电子钱包唯一标识EPID、充值信令头信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取MAC密钥,然后根据MAC密钥与随机数最终值RD计算得到16字节的MAC消息认证码过程密钥MSEC;加密机采用三重数据加密算法Tri-DES,对MSEC和MAC源数据进行计算,MAC源数据为充值信令头+EPID,最终生成与EPID对应的MAC消息认证码;
对充值码进行加密的流程如下:随机数最终值RD为加密过程密钥源数据,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值,充值码生成服务器端将随机数最终值RD、随机数索引RIDX、EPID、充值信令头、MAC消息认证码信息传递给加密机,加密机根据随机数索引RIDX及预定的加密组版本号获取圈存密钥,然后根据圈存密钥与随机数最终值RD,计算得到16字节的充值过程密钥RSEC;加密机采用Tri-DES算法,对充值过程密钥RSEC和充值码源数据进行计算,充值码源数据为充值信令头+MAC,最终生成与EPID对应的加密充值码;
充值码生成服务器端将字节码方式的充值码转换为数字串方式的充值码,最终以与用户请求一致的形式,将数字串方式的充值码发送给用户:充值码生成服务器端接收到加密机生成的加密充值码后,调用HEX转BCD方式,生成20位BCD方式的充值信令;将预先生成的原始随机数据RS经过HEX转BCD方式,生成5位BCD方式的随机效验码;
用户将充值码生成服务器端发来的数字串方式的充值码输入电子钱包终端,电子钱包终端解密后,完成终端电子钱包的充值:
电子钱包终端充值时,按序输入BCD方式的随机效验码、BCD方式的充值信令,电子钱包终端接收的是BCD码数据,该输入分为两部分,一部分为充值码类型:5个BCD随机效验码;第二部分为充值信令:20个BCD的充值信令,电子钱包终端采用BCD转HEX方式,将BCD码转换为系统认知的HEX编码方式;
电子钱包终端的解密流程如下:用户输入的充值码的前5位BCD码为解密过程密钥源数据,充值码的前5位BCD码为原始随机数据RS,原始随机数据RS与密钥组个数N进行取模运算,得到随机数索引RIDX的数值,作为密钥组索引的值;电子钱包卡根据RIDX获取自己的分散圈存密钥;电子钱包卡根据自己的卡标识Card ID与原始随机数据RS经过同或和异或操作得到16字节的随机数最终值RD;电子钱包卡根据随机数最终值RD和分散圈存密钥获得圈存过程密钥DLK;电子钱包卡将充值码的后20个BCD码转换为HEX后,根据DLK和转换为HEX后的充值码后20个BCD码,采用Tri-DES算法进行计算,获取解密后的充值信令;
电子钱包终端解析出充值信令后,再次确认MAC消息认证码的合法性,并获取MAC过程密钥:电子钱包卡获得随机数最终值RD,根据RIDX获取自己的分散MAC密钥;电子钱包根据分散MAC密钥、充值信令中的充值流水号、充值方式、充值金额以及EPID,通过Tri_DES算法计算,获得MAC消息认证码的数值MAC1;电子钱包卡将数值MAC1与充值信令中的MAC码匹配运算,如果一致,则认为合法,否则认为充值码无效,不允许其离线充值。在充值时,电子钱包终端进一步效验充值信令中的充值流水号,如果该充值流水号与电子钱包卡的系统记录无冲突,则允许充值,否则认为无效操作。
7.如权利要求6所述的基于电子钱包的离线充值系统,其特征在于:所述MAC消息认证码的计算过程中,在进行Tri_DES操作前,确保MAC源数据为8的整数倍字节。
8.如权利要求7所述的基于电子钱包的离线充值系统,其特征在于:如果提供的MAC源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
9.如权利要求6或7或8所述的基于电子钱包的离线充值系统,其特征在于:所述对充值码进行加密的过程中,在进行Tri_DES操作前,确保充值码源数据为8的整数倍字节。
10.如权利要求9所述的基于电子钱包的离线充值系统,其特征在于:如果提供的充值码源数据不满足条件,则在高字节的地方,以0x00的方式补齐数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310296966.XA CN103345683B (zh) | 2013-07-15 | 2013-07-15 | 基于电子钱包的离线充值方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310296966.XA CN103345683B (zh) | 2013-07-15 | 2013-07-15 | 基于电子钱包的离线充值方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103345683A true CN103345683A (zh) | 2013-10-09 |
CN103345683B CN103345683B (zh) | 2016-08-10 |
Family
ID=49280477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310296966.XA Active CN103345683B (zh) | 2013-07-15 | 2013-07-15 | 基于电子钱包的离线充值方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103345683B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366276A (zh) * | 2013-07-15 | 2013-10-23 | 武汉天喻信息产业股份有限公司 | 基于充值码的电子钱包充值方法及系统 |
CN103645882A (zh) * | 2013-12-09 | 2014-03-19 | 中颖电子股份有限公司 | 基于单片机的批量乱序随机数的生成方法 |
WO2015090210A1 (zh) * | 2013-12-20 | 2015-06-25 | 华为终端有限公司 | 一种充值方法及装置 |
CN108270561A (zh) * | 2017-01-04 | 2018-07-10 | 阿里巴巴集团控股有限公司 | 数据发送方法及装置、密钥索引的生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138351A1 (en) * | 2003-12-23 | 2005-06-23 | Lee Sok J. | Server authentication verification method on user terminal at the time of extensible authentication protocol authentication for Internet access |
CN101826233A (zh) * | 2008-03-07 | 2010-09-08 | 北京握奇数据系统有限公司 | 一种远程管理电子钱包状态的装置 |
CN102289893A (zh) * | 2011-04-29 | 2011-12-21 | 中国联合网络通信集团有限公司 | 电子钱包圈存方法、装置和系统 |
CN102694935A (zh) * | 2007-12-28 | 2012-09-26 | 中国移动通信集团公司 | 一种电子充值方法及装置 |
-
2013
- 2013-07-15 CN CN201310296966.XA patent/CN103345683B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138351A1 (en) * | 2003-12-23 | 2005-06-23 | Lee Sok J. | Server authentication verification method on user terminal at the time of extensible authentication protocol authentication for Internet access |
CN102694935A (zh) * | 2007-12-28 | 2012-09-26 | 中国移动通信集团公司 | 一种电子充值方法及装置 |
CN101826233A (zh) * | 2008-03-07 | 2010-09-08 | 北京握奇数据系统有限公司 | 一种远程管理电子钱包状态的装置 |
CN102289893A (zh) * | 2011-04-29 | 2011-12-21 | 中国联合网络通信集团有限公司 | 电子钱包圈存方法、装置和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366276A (zh) * | 2013-07-15 | 2013-10-23 | 武汉天喻信息产业股份有限公司 | 基于充值码的电子钱包充值方法及系统 |
CN103366276B (zh) * | 2013-07-15 | 2016-05-18 | 武汉天喻信息产业股份有限公司 | 基于充值码的电子钱包充值方法及系统 |
CN103645882A (zh) * | 2013-12-09 | 2014-03-19 | 中颖电子股份有限公司 | 基于单片机的批量乱序随机数的生成方法 |
WO2015090210A1 (zh) * | 2013-12-20 | 2015-06-25 | 华为终端有限公司 | 一种充值方法及装置 |
CN108270561A (zh) * | 2017-01-04 | 2018-07-10 | 阿里巴巴集团控股有限公司 | 数据发送方法及装置、密钥索引的生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103345683B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077670A (zh) | 交易消息发送 | |
CN106327723B (zh) | 一种基于智能平台的mPOS交易系统 | |
JP5838393B2 (ja) | 使い捨てのカード番号生成方法 | |
CN101866498B (zh) | 一种基于智能卡的电子票实现方法及系统 | |
CN102779284B (zh) | 一种集商品防伪、物流管控等综合功能于一体的rfid标签 | |
EP3029880B1 (en) | Method and system for safely transmitting transaction sensitive data based on cloud pos | |
CN103020682B (zh) | 图书二维码标识生成装置、二维码标识识别装置及系统 | |
CN103198390A (zh) | 一种基于二维码的预约提货送货信息的数据处理方法及系统 | |
CN102118710A (zh) | 手机终端之间数据传输系统及其传输方法 | |
CN103714458A (zh) | 基于二维码的移动终端交易加密方法 | |
CN1514635A (zh) | 采用指纹智能终端实现移动电子商务的方法及智能手机 | |
CN101500011A (zh) | 实现动态口令安全保护的方法及系统 | |
CN107707347A (zh) | 用户密钥的备份方法及装置、用户密钥的导入方法及装置 | |
CN103345683A (zh) | 基于电子钱包的离线充值方法及系统 | |
CN109961276A (zh) | 数字货币钱包、交易方法、交易系统和计算机存储介质 | |
CN104463263A (zh) | Ic卡上多应用的系统构架及基于该构架的信息处理方法 | |
CN113595744B (zh) | 入网方法、装置、电子设备及存储介质 | |
CN108134667A (zh) | 生成动态信用卡安全码的方法和设备、银行卡和认证方法 | |
CN113595725B (zh) | 基于量子密钥卡排列的通信系统及通信方法 | |
CN102521777A (zh) | 一种实现远程信贷的方法及系统 | |
CN1614620A (zh) | 一种便携式读卡器及其读卡方法 | |
CN102831517A (zh) | 一种基于移动终端的电子消费卡系统 | |
CN111683051A (zh) | 一种日志处理方法及相关设备 | |
CN101986684A (zh) | 充值付费处理系统和方法 | |
CN109948387A (zh) | 基于二次剩余轻量级rfid的群组标签认证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |