Java版本MD5加密
public static String getKey(String userName, String password, String timestemp) {
String key = "";
try {
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(userName.getBytes());
mdTemp.update(password.getBytes());
mdTemp.update(timestemp.getBytes());
key = bytesToHexString(mdTemp.digest());
} catch (Exception e) {
e.printStackTrace();
}
return key;
}
public static String getTimestemp() {
return (new SimpleDateFormat("MMddHHmmss")).format(new Date());
}
public static String bytesToHexString(byte[] src) {
String resultString = "";
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
resultString = stringBuilder.toString();
stringBuilder = null;
return resultString;
}
说明:Key是32位的MD5字符串,组成形式:UserName + Password + Timestemp
Timestemp时间戳5分钟内有效。所以在每次发送时最好是获取当前时间。
返回值 |
说明 |
-2001 |
内容中存在黑字典 |
-2002 |
号码中存在黑名单 |
-2004 |
用户名错误 |
-2005 |
密码错误 |
-2006 |
内容长度错 |
-2007 |
号码长度超出范围 |
-2008 |
余额为零 |
-2009 |
余额不足 |
-2010 |
用户名为空 |
-2011 |
时间戳错误 |
-2012 |
Key为空 |
-2013 |
内容为空 |
-2014 |
字符集错误 |
-2015 |
号码不能为空 |
-2016 |
定时时间错误 |
-2017 |
优先级超出范围 |
-2018 |
包ID超出范围0~50 |
-2019 |
包sID超出范围0~50 |
-2020 |
通信异常 |
-2021 |
模式错误0-1 |
-2022 |
回调地址错误 |
-2024 |
屏蔽词 |
-3001 |
通道信息错误 |
-3002 |
通道扩展码超长 |
-3003 |
通信包错误 |
-3004 |
状态报告比对不存在 |
-3005 |
Key队列满 |
-3006 |
MT_RespKey重复 |
-3007 |
MT超时,或状态报告ID重复 |
-3008 |
用户策略失败 |
-3009 |
查无订单记录 |
-3010 |
没有找到匹配的订单 |
-3011 |
路由不存在 |
-3012 |
无当前业务路由 |
-3013 |
未知号码 |
-3015 |
用户调用频率过高 |
-3016 |
内容不包含回,退订 |
-4001 |
签名过长 |
-4002 |
签名不匹配 |
-4003 |
签名错误 |
-4099 |
号码发送超限 |
-4100 |
未匹配发送区域 |
-502 |
审核失败(或-502) |