最近接到一项新的任务,要求编写一个联通在信的退订接口。逻辑不难,技术也不深,不过就是这样也花了我不少时间。事后之余,心中颇有感触。
按照说明,通过HTTP(S)协议,调用总部的接口进行定制和退定请求。
调用示例:http://(接收方SPMS的地址)? SPMSCode=...&AccessTime=...&EncodeStr=...
接口调用过程中,EncodeStr参数要求加密处理,加密过程如下:
EncodeStr生成算法如下:
EncodeStr = URLEncoding(Base64(Encrypt(SpmsCode + “$202$”+ UserNumber + “$”+ SpNumber + “$”+ OperaTag)))
URLEncoding是指对BASE64编码中的HTML控制码进行转义的过程,其具体实现参见RFC1738。
Encrypt加密算法采用3-DES算法,密钥为192位,给SP时采用Base64编码,编码后为32字节。
好了,废话不多说了,以下是我这几天通过网上资料收集,总结出的几种DES3算法的实现。
示例1:
public class MyDES3 {
/**
* DES3加密
* @param mykey 密钥(二进制数组)
* @param str