| 电子商务的安全分析、设计及JAVA实现 |
| 当前位置: 论文资料 >> 工商管理 >> 电子商务 >> 电子商务的安全分析、设计及JAVA实现 | ||
| 电子商务的安全分析、设计及JAVA实现 | ||||
|
● 使用SSL加密来实现安全传输 SSL(Secure Socket Layer),安全套接字层,位于HTTP层和TCP层之间,用来建立用户与服务器之间的加密通信,确保所传递信息的安全性。SSL是工作在公共密钥和私人密钥基础上的,任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。 使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个惟一的安全通道。加密解密通常用RSA算法来实现分3步完成:第一步:生成密钥对;第二步:公钥加密;第三步:私钥解密。为简单起见,这里只列出密钥对的生成过程,源代码如下: //生成密钥对的JAVA源代码 public int generateKeyPair(int length){ BigIntegerp, q, n, d, e, pSub1, qSub1, phi; BigIntegerdP, dQ, qInv; int pbitlength = (length + 1) / 2; int qbitlength = (length- pbitlength); e=new BigInteger("65537",10); //生成素数p,并且使p-1与e互素 for (;;){ p = new BigInteger(pbitlength, 50,new SecureRandom()); if (e.gcd(p.subtract(ONE)).equals(ONE)) break; } for (;;){ //生成素数q,并且使q-1与e互素,与p不相等 for (;;) { q = new BigInteger(qbitlength,50,new SecureRandom()); if (e.gcd(q.subtract(ONE)).equals(ONE) && !p.equals(q)) break; } //模数n=p*q n = p.multiply(q); if (n.bitLength() == length) break; p = p.max(q); } pSub1 = p.subtract(ONE); qSub1 = q.subtract(ONE); phi = pSub1.multiply(qSub1); d = e.modInverse(phi); dP = d.remainder(pSub1); dQ = d.remainder(qSub1); qInv = q.modInverse(p); pukParam=new RSAPublicKey(n, e); pvkParam=new RSAPrivateKey(n, e, d, p, q, dP, dQ, qInv); return 1; } 以上生成密钥对的代码中,生成p、q、e、d、n 等数是核心。其算法为:先找出3个数p,q,e,其中p,q是两个相异的质数,e是与(p-1)(q-1)互质的数,p,q,e这3个数便是Private Key;然后找出m,使得e m==1mod(p-1)(q-1),再计算n=p q,则m,n这两个数便是Public key。运行时,需在地址栏前面输入“https://”,而不是通常命名用的“//”,这表明使用了SSL协议。 ● 构造数据库连接池来优化安全稳定地访问数据库 在电子商务的交易过程中。可能出现多个用户购买商品和付款,它们都需要频繁地访问数据库,为了解决多用户访问及并发控制,提高用户访问速度,保持系统的稳健性,需设计一个数据库缓冲池。数据库缓冲池技术是将数据库的连接进行统一管理的一种机制。它可以显著改善连入数据库的速度,而且可以跟踪连接的状态,为分析系统的运行状态提供了参考。连接池的工作原理如图2所示。源代码从略。 图2:连接池工作原理示意图 结语 电子商务的安全作为电子商务的关键需求和核心问题之一,涉及到两大因素5个层次,即技术因素和管理因素两大因素;网络结点的安全、数据通信的安全、公共程序的安全、用户的认证管理、安全管理等5个层次。本文采用安全中间件的解决方案,通过使用RMI机制、RSA加密算法、数据库连接池等多种关键技术相结合,成功地解决了电子商务交易过程中的安全问题,取得了较好的效果,作为一个实际课题的解决方案,电子商务安全中间件具有一定的应用价值。 |
||||
|
|
||||