public static String getUUID()
{
return UUID.randomUUID().toString();
}
public static String md5Encrypt(String groupParamertStr) throws UnsupportedEncodingException {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(groupParamertStr.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
return md5StrBuff.toString();
}
//下面这个方法三个参数 第一个是用户token 第二个是加密所需要的参数,等会我们通过用户token查询出 加密token之后,我们需要将它拼接到servlet加密所需json字符串中去,第三个就是从客户端传来的 加密结果字符串 这里方法返回0表示 用户加密后的结果没有问题,否则就有错
public static int postTokenVerify(String token, JSONObject requestJsonObject,
String encryptStrValue) {
int returnValue=0;
String[] mysqlParameter=new String[]{token};
//下面就是通过用户token查询 用户的加密token
ResultSet returnData=MySqlHepler.executeQuery("select * from infosheet where idToken=?", mysqlParameter);
JSONObject returnObject=null;
try {
returnObject = ResultToJsonTool.resultSetToJsonObject(returnData);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String byEncryptStrValue="";
try {
if (returnObject.getString("encryptToken").length()>2) {//说明用户的idToken存在,
// return returnValueString;
//{"idToken":"123456","id":"34","pwd":"23","encryptToken":"2345678","account":"hang"}
/*下面的代码是在匹配JAVAMD5加密字符串,
因为用户加密时,增加了加密token到加密字符串中去,但是请求时又不能传递这个加密token,所以我们servlet加密时需要通过用户token去查询用户的加密toke, 查询出来了,我们就需要拼接到,请求参数json后面,这样servlet加密的字符串就与用户加密的字符串一致了。下面就是查询出加密token后拼接到请求参数后面的方法,
*/
byEncryptStrValue=requestJsonObject.toString().substring(0, requestJsonObject.toString().length()-1);
JSONObject encryptTokenJsonObject=new JSONObject();
encryptTokenJsonObject.put("encryptToken",returnObject.getString("encryptToken"));
String value1=encryptTokenJsonObject.toString().substring(1, encryptTokenJsonObject.toString().length());
byEncryptStrValue=byEncryptStrValue+","+value1;
//
}
else {
returnValue=1;//idtoken错 误
}
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
//下面方法就是使用拼接正确的字符串 在servlet上进行加密的方法调用,返回一个结果后,对比用户传递的加密结果
String javaMd5Result=EncryptSafa.md5Encrypt(byEncryptStrValue);
if (javaMd5Result.equals(encryptStrValue)) {//加密串是正确的
}
else
{
returnValue= 2;//加密结果有错
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return returnValue;
}
//昨天在这里遇到个问题,就是当我请求参数中带中文时,servlet获取之后是乱码的,之后用了下面这种方式好了.
String requestJsonStr=new String(request.getParameter("parameter").getBytes("ISO8859-1"),"UTF-8");
//提交参数
JSONObject objectParameter=null;
//idToken
JSONObject requestParmeter=null;
//idToken
String idToken="";
//客户端加密字符串
String md5Str="";
try {
//获取总的JSON字符串,这里其实是我们从URL只传递的那个paramter一个参数
objectParameter=new JSONObject(requestJsonStr);
//提交参数,json的一个key值,请求参数内部的paramter,其实这个参数里面放的是业务中所需参数,比如你登录 帐号 密码 这类型的
requestParmeter=new JSONObject(objectParameter.getString("parameter"));
//idToken 这个是用户token,他就是用户的唯一标识,我们是需要通过他来查询数据库中对应的 加密token的
idToken=requestParmeter.getString("idToken");
//客户端加密字符串
md5Str=objectParameter.getString("md5Str");
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//MD5加密后生成的字符串
//下一步是验证token是否正确
int tokenVerifyResult=EncryptSafa.postTokenVerify(idToken, requestParmeter, md5Str);
if (tokenVerifyResult==0) {
out.println("token加密方式正确");
}
else {
out.println("加密token或加密方式错误");
return;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有