j2me的移动支付系统的客户端的实现

j2me的移动支付系统的客户端的实现

ID:6615547

大小:27.00 KB

页数:4页

时间:2018-01-20

j2me的移动支付系统的客户端的实现_第1页
j2me的移动支付系统的客户端的实现_第2页
j2me的移动支付系统的客户端的实现_第3页
j2me的移动支付系统的客户端的实现_第4页
资源描述:

《j2me的移动支付系统的客户端的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、J2ME的移动支付系统的客户端的实现J2ME的移动支付系统的客户端的实现整个J2ME客户端的逻辑架构是由若干个功能模块组成的,这些功能模块覆盖了网络通信、用户界面、安全等各个方面的职能,并通过模块间的通信共同实现了移动支付系统客户端的功能。逻辑结构如图2所示,其中A~F的意义如下:A:用户请求交易/交易操作结果B:用户输入的交易请求信息/服务器端返回的交易结果C:经过XML加密的请求信息/经过XML签名认证的返回结果D:经过XML签名的已加密请求信息/解析过的XML返回结果E:组装好的经过XML签名的已加密请求信息的XML

2、数据包/网络通信模块接收到的XML数据包F:发向服务器的XML数据包/接收到的来自服务器的XML数据包黑色双箭头所表示的是J2ME特有的RMS数据库的数据。数据库访问模块负责调用J2ME的RMS数据库的功能接口,对用户界面模块用的个性化设置,XML加密和签名用的私匙和公匙对,网络通信模块用的HTTP访问地址和设置等等数据进行存取,而其它模块则通过访问数据库模块存取所需数据。在客户端系统的实现中,使用了一些第三方API库:kXML和BouncyCastleAPI。其中kXML是XML组装/解析的工具,而BouncyCastl

3、eAPI是J2ME应用程序专用的XML加密/解密和签名/验证的工具。客户端部分的主要模块实现如下:1)数据库访问模块数据库访问模块是所有其它模块需要用到的模块,这是因为它把整个J2ME客户端需要用到的程序配置和用户设置存取到J2ME的数据库中。在J2MEMIDP中定义了一个简单的基于记录的数据库管理系统(RecordManagementSystem,RMS),在RMS中RecordStore等同于一般数据库系统中的表(Table),它是记录了一系列记录的文件。数据库访问模块对RMS进行操作,并对外部模块提供了两个存取数据的

4、接口:按名称保存数据到RMS的接口:publicvoidsetDataToRecordStore(Stringname,Stringdata)按名称从RMS获取数据的接口:publicStringgetDataFromRecordStore(Stringname)2)用户界面模块用户界面模块实现人机交互工能,接收用户输入,并把操作结果以友善的形式进行输出。除了使用J2ME提供的Display、Screen、Label、Command、Alert、Form、TextField等高级用户界面控件外,还需要使用J2ME提供的Ca

5、nvas、Image等等低级用户界面API,来实现动画等特效。3)XML加密/解密模块这两个模块负责对服务器端传来的用RSA算法公匙加密的共享密匙进行解密,然后用共享密匙对机密信息使用TripleDES算法进行加密。通过使用BouncyCastleAPI密码术包,我们可以轻松地对所需要传输的交易请求里面的机密信息进行XML加密和解密。它所提供的org.bouncycastle.crypto包有加密/解密中需要用到的绝大部分的类,另外org.bouncycastle.util包提供了包括Base64编码转换、Hex编码转换等

6、有用的工具类。在BouncyCastleAPI中,公匙、私匙和共享密匙都是对象,在试图使用它们之前,必须要通过它们的主要参数重构出这些密匙对象。RSA的公匙有Modulus和Exponent两个主要参数,RSA私匙除了这两个参数外,还有privExp、dp、dq、p、q、qInv等几个参数,而TripleDES共享密匙只有单一的key参数。在传递这些密匙参数或加密的相关信息时,由于XML加密的很多元素指定使用Base64编码,因此还需要用到Base64这个工具类。我们定义了一个Encryptor类来处理所有加密/解密的相关

7、的问题。定义的接口如下:TripleDES加密接口:publicbyte[]encryptTripleDES(byte[]data)throwsCryptoExceptionRSA解密接口:publicsynchronizedbyte[]decryptRSA(byte[]data)throwsCryptoException4)XML签名/验证模块XML签名过程中,首先生成原始数据的摘要,再对摘要进行签名。生成摘要的算法一般使用SHA1算法。BouncyCastleAPI包同样提供了生成签名用的摘要的SHA1Digest类,

8、以及用于数字签名的RSAEngine、PSSSigner等类。我们定义Signature类封装所有的处理签名的功能代码。定义的接口如下:生成摘要:privatebyte[]getDigest(Stringmesg)throwsException使用RSA私匙签名:publicbyte[]RSASign(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。