信息与电脑 软件开发与设计China Computer&Communication2011年9月刊电子钱包支付系统设计与应用 12胡先智 梁艳(1.西安理工大学网络信息管理中心,陕西西安 710048;2.西安思源学院理工学院,陕西西安 710038)摘 要:电子钱包是客户用来进行安全网络交易特别是安全网络支付并且储存交易记录的特殊系统。本文设计了购物网站电子钱包支付系统,实现了电子钱包认证、电子钱包交易、电子钱包查询交易记录等功能,以及解决了系统中存在的不安全因素,可为用户提供安全、方便、快捷的支付服务。关键词:电子钱包;支付系统;B/S模式;数字认证中图分类号: 文献标识码:A 文章编号:1003-9767(2011)09-0064-02分解成两个质数的乘积,加密和解密用的是两个不同的密钥。 引言有效的电子钱包支付系统是一个可以由持卡人用来进行安全电子3.系统实现和测试交易和储存交易记录的软件,由相互作用的三方参与,三方为银行、 RSA算法实现 付款人(简称用户)、受款人(简称商店),其中用户和商店在银行本系统的开发过程中,由于部分数据涉及到用户的切身利益,所都有帐号。它由于不需要涉及用户的银行真实账户、不需要登录网以在传输这些数据时,就需要对其进行加密,采用了RSA算法和身份银、只需输入钱包账户号和支付密码就可完成支付,从而以一种安全验证双重保险。 方式把钱从用户的帐号转到商店的帐号,为用户提供安全、自由、快其中,RSA算法实现主要代码如下:速的支付服务。public class Cryptography{ public static RSACryptoServiceProvider rsa;1.支付系统设计电子钱包支付系统采用B/S模型设计,包括两部分:一部分为电 public static void AssignParameter(){子钱包客户端;另一部分为电子钱包服务器。它利用 web 应 ………… }用程序模板,设计系统总体页面框架;然后,通过点击功能链接命令 public static string EncryptData(string data2Encrypt) { 来调用后台数据库SQL server所建的表,并且对于统计分析与报表,AssignParameter();能通过灵活运用数据库及SQL 语言进行各项处理。 StreamReader reader = new StreamReader(@"D:\key\publickey.利用电子钱包进行网络支付流程如下:xml");(1)电子钱包充值。客户登录客户端,利用第三方支付系统, string publicOnlyKeyXML = ();将客户账户上的金额转移到电子钱包中,这时客户账户中的实体货币 (publicOnlyKeyXML);已经以虚拟货币的形式储存在客户的电子钱包中。 ();(2)物品选购。挑选商品,在确认购买后,用电子钱包支付。 //read plaintext, encrypt it to ciphertext(3)电子钱包支付。通过第三方支付系统,此时电子钱包内的 byte[] plainbytes = .虚拟货币价值流向商户的账户中,虚拟货币重新转化为实体货币价GetBytes(data2Encrypt);值。 byte[] cipherbytes = (plainbytes, false);(4)购物车管理。商户在得到客户付款的确认信息后,向客户 return (cipherbytes);}发出送货信息。 public static void AssignNewKey(){ AssignParameter();2.数字认证技术本文中的电子钱包支付系统采用数字认证技术,用来解决系统客 //provide public and private RSA params户端和服务器端的安全问题。 StreamWriter writer = new StreamWriter(@"D:\key\privatekey.(1)数字证书概念xml");数字证书是网络通讯中标志通讯各方身份信息的一系列数据,其 string publicPrivateKeyXML = (true);作用类似于现实生活中的身份证。使用数字证书,通过运用对称和非 (publicPrivateKeyXML);对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证 ();信息不被其它人窃取和篡改等。 //provide public only RSA params(2)数字认证原理 writer = new StreamWriter(@"D:\key\");数字证书采用公钥体制,利用一对互相匹配的密钥进行加密、解 string publicOnlyKeyXML = (false);密。每个用户自己设定一把特定的仅为本人所知的私有密钥,用它进 (publicOnlyKeyXML);行解密和签名;同时设定一把公共密钥,并由本人公开,为一组用户 (); }所共享,用于加密和验证签名。 public static string DecryptData(string data2Decrypt){公开密钥密码体制常用的是RSA体制。其数学原理是将一个大数(下转第66页)64
信息与电脑 软件开发与设计China Computer&Communication2011年9月刊BaseClass=OptionGroupSpinnerHighValue=100BorderStyle=0-无SpinnerLowValue=0ButtonCount=2上面CurrentControl 属性指定列中使用的控件名称;Sparse属性指Column6 的属性:定此控件作用范围是当前行单元格还是所有单元格,Sparse=.F. 说明BaseClass=Column本列所有单元格都用此类控件;单元格里控件的BorderStyle属性应设ControlSource=main.成绩置为“0-无”从而去掉外框。CurrentControl=Spinner1Sparse=.F.参考文献:Spinner1的属性:[1]刘瑞新 VFP 程序设计教程。机械工业出版社,2000年10月[2]王新成 VFP 数据库应用技术。中国水利出版社,2002年7月BaseClass= Spinner[3]赵永林 VFP 应用开发。电子工业出版社, 2004年BorderStyle=0-无Increment=1作者简介:依不拉音?司马义 (1978-),维吾尔族,男,新疆喀KeyBoardHighValue=100什人,讲师,大学本科,研究方向:计算机程序设计语言KeyBoardLowValue=0(上接第64页) AssignParameter(); byte[] getpassword = (data2Decrypt); StreamReader reader = new StreamReader(@"D:\key\"); string publicPrivateKeyXML = (); (publicPrivateKeyXML); (); //read ciphertext, decrypt it to plaintext byte[] plain = (getpassword, false); return (plain); } } 系统测试图2用户购物车界面用户充值界面如图1所示。电子钱包支付系统以VS2005 +Server2000为开发平台,在FrameWork 运行环境下,采用 + C# 技术完成本系统。充分利用了虚拟货币账户代理实体账户支付的行为,所有通过虚拟电子钱包支付的交易都必须得到用户确认后才从实体账户扣款,有解决了系统中存在的不安全因素,同时为用户提供安全、方便、快捷的支付服务。 参考文献:[1]杨波,王育民.利用电子钱包的公正支付系统[J].计算机学报,图1用户充值界面1999,22(8).用户购物车界面如图2所示。[2]刘二军,计晓云,喻东. 一种SET协议中持卡者端的实现策略[J].计在本系统中,首先为从各个页面输入合法数据进行测试,测试通算机工程,2003,29(5).过表明程序功能部分已实现,然后开始向各个页面输入非法的数据。[3]John Kauffman,Brian Matsik编著.《数据库入门经通过测试解决了非法输入和数据越界等相关问题,验证了系统的稳定典——C#编程篇》[M].清华大学出版社. 性和可靠性。[4]杨鲲鹏,孟凡琦,温才燚编著.《+SQL Server动态网站开发从基础到实践》[M].电子工业出版社,2005年.4.结语66