动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.爪哇语言单态创立性模式介绍(上).
.J2EE TM 蓝图摘要.
.如何使用Java编写NT服务.
.Java中鲜为人知的缺点(上).
.EJB轻松进阶之四.
.开发工具:用JBuiler玩转petstore.
.测试在Solaris系统下NFS使用手册.
.处理驱动器和文件夹.
.名字的隐藏.
.Java Web Start 实践.
.JBuilder Editor中光标不能正确定.
.Java语言的util类.
.JAVA经典实例--连接字符串.
.类的设计方法.
.Java中的排序和搜索.
.使用高级UI制作简单计算程序.
.用Jython构建JUnit测试包.
.java 第一次.
.全面研读EJB 2.0(3).
.发现一个技术升级了的带毒网站(.

JBuilder在中文环境中光标问题的解决方案

发表日期:2008-1-5 |



  联通彩e接口开发


前段时间开发联通彩e接口,期间碰到很多问题,在朋友的帮助和自己的摸索中总算完成了接口的开发。 在sp联盟论坛上也见到许多同行各种各样的问题,因此将开发细节整理成文,希望能给与我当初一样 困扰的人以帮助。 第一次接触彩e,感觉有点无从下手,接口指南几百页之多,我在开发的时候不知道联通提供测试的接入 平台以供调试,而是对着接口规范编写代码,然后模拟接口规则生成数据,这些都是在单元测试中完成 的,到接入uni-wise测试环境时,问题多多。


--------------------------------------------------------------------------------

目录

概述
1. SSO接口
1.1. 传输安全
1.2. 生成请求票根
1.3. 解析响应票根
2. 预定接口
2.1. 发起预定请求
2.2. 解析uni-wise预定请求
2.3. 验证请求
2.4. 响应预定请求
3. 预定取消接口
3.1. 发起取消请求
3.2. 解析uni-wise取消请求
3.3. 验证请求
3.4. 响应请求
4. web push接口
4.1. 提交push
概述
本文以Java语言为例,讲述彩e接口开发的点滴。参考的接口指南为《中国联通增值业务综合治理及接入平台SP接口规范v1.2》, 文中代码均经过测试,且与uni-wise平台能正常运行。彩e与sp接口包括:sso接口、预定接口、取消接口、彩e push接口,取 消push接口,查询push接口、wap push接口。文中除了wap push接口,其余的将会一一介绍。 彩e接口的开发其实就是sp与联通uni-wise平台之间的通信,uni-wise平台是以web方式工作,因此与sp的交互大部分通 过http+XML协议传输。 笔者在开发的过程中也曾用C#写过彩e的部分接口代码,如有此需求,我也将整理成文。

第 1 章 SSO接口
SSO 是 Single sign on的缩写,即单点登录,彩e接口中实现的功能是,用户在uni-wise平台或sp平台只需登录一次,即可 访问相关资源。通过cookies机制实现。

1.1. 传输安全
出于安全考虑,网络的传输中经常对传输数据做加密和编码处理,彩e接口开发中的一个要害点也是对加密解密的代码编写。 其中涉及以下几种:

1、md5加密,该加密算法是单向加密,即加密的数据不能再通过解密还原。相关类包含在java.security.MessageDigest包中。

2、3-DES加密,该加密算法是可逆的,解密方可以通过与加密方约定的密钥匙进行解密。相关类包含在javax.crypto.*包中。

3、base64编码,是用于传输8bit字节代码最常用的编码方式。相关类在sun.misc.BASE64Decoder 和sun.misc.BASE64Encoder 中。

4、URLEncoder编码,是一种字符编码,保证被传送的参数由遵循规范的文本组成。相关类在java.net.URLEncoder包中。

1.2. 生成请求票根
当用户从SP平台向uni-wise发起登录请求时,SP平台需要生成一个合法的票根,以http协议传输给uni-wise平台。 生成请求票根的规则是:SPTicketRequestValue = URLEncoding{UNICODE(SPCode +“$”)+ Base64 [Encrypt (UNICODE(Seed + “$”)+ Digest)]}

1、生成Seed: returnUrl + "$" + timeStamp;returnUrl为登录成功后接收uni-wise的响应票根链接。timeStamp为生成的 时间戳。

例 1.1. TimeStamp实现代码

public String getTimeStamp()
{
Calendar cal=Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss.SSS");
String timeStamp=formatter.format(cal.getTime());
return timeStamp;
}

2、生成Digest :Base64{Hash[UNICODE(SPCode +"$"+ Seed + "$" + SPKey)]},其中Hash算法采用md5

例 1.2. Digest的实现代码

public String getDigest(String strSrc)
{
//String strSrc = spCode + "$" + getSeed() + "$" + spKey;
BASE64Encoder base64en = new BASE64Encoder();
String digest="";
try
{
byte[] srcMD5 = md5Encrypt(strSrc);
digest = base64en.encode(srcMD5); (1)
}
catch(Exception e){
e.printStackTrace();
}
return digest;
}

private byte[] md5Encrypt(String strSrc)
{
byte[] returnByte = null;
try
{
MessageDigest md5 = MessageDigest.getInstance("MD5"); (2)
returnByte = md5.digest(strSrc.getBytes("GBK"));
}
catch(Exception e)
{
e.printStackTrace();
}
return returnByte;
}

(1) 用base64编码

(2) 指定加密方式为md5


3、生成密钥匙,用联通提供的key,进行md5加密。

例 1.3. 得到3-DES的密钥匙

private byte[] getEnKey(String spKey)
{
byte[] desKey=null;
try
{
byte[] desKey1 = md5Encrypt(spKey);
desKey = new byte[24];
int i = 0;
while (i < desKey1.length && i < 24) {
desKey[i] = desKey1[i];
i++;
}
if (i < 24) { (1)
desKey[i] = 0;
i++;
}
}
catch(Exception e){
e.printStackTrace();
}
return desKey;
}

(1) 根据接口规范,密钥匙为24个字节,md5加密出来的是16个字节,因此后面补8个字节的0


4、生成SPTicketRequestValue,URLEncoding{UNICODE(SPCode +“$”)+ Base64 [Encrypt (UNICODE(Seed + “$”)+ Digest)]}, Encrypt算法采用3-DES加密,用md5加密的key作为密钥匙。

例 1.4. 3-DES加密的实现代码

public String getSPTicketRequestValue()
{
String SPTicketRequestValue="";
try{
byte[] src = (getSeed() + "$" + getDigest() ).getBytes("UTF-16LE");
byte[] enKey = getEnKey(spKey);
上一篇:JBuilder集成开发环境介绍 人气:863
下一篇:JBuilder应用技巧一则 人气:640
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-11-19 飞天论坛FTBBS PHP v5.6 build 0
2008-11-19 飞天论坛FTBBS PHP v5.6 build 0
2008-11-19 PBDigg v2.0 Build 081118 周年版
2008-11-19 飞天论坛FTBBS PHP v5.6 build 0
2008-11-19 Seeknove v1.0.8
2008-11-19 PHP在线考试系统PPFRAME v1.2.9
2008-11-19 老Y文章管理系统 v2.2 bulid 081
2008-11-19 shopd1网店系统 v1.2
2008-11-19 仿webmasterhome 网站收录查询 v
2008-11-15 BitTorrent 6.1.2 Build 13185
2008-11-15 BitComet 1.06
2008-11-15 SpeedFan 4.36 Final
2008-11-15 Windows Installer CleanUp Util
2008-11-15 Safari 3.2
2008-11-15 RealPlayer 11.0.0.835 简体中文
2008-11-15 QQ for Mac Preview 3 Build 394
2008-11-15 Vista优化大师3.20
2008-11-15 酷点 CoolDock 0.6
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成