您的位置:首页 > Web前端 > JQuery

jquery base64 加密解密 request 文本字段传输

2015-09-12 14:47 801 查看
最近项目中涉及文本类型的字段通过json 传递,文本字段里面可能包含了很多特殊字符,这样在传输的过程中必须要加密。方案详细如下:

方案1: 服务端通过 Java提供的 base64位加密 ,view 端通过jquery.base64.js 解密

Java 加密 代码如下:

public static String encodeBase64Str(String plainText){
String encodeBase64Str=null;
if (org.apache.commons.lang.StringUtils.isNotEmpty(plainText)){
byte[] btyeArrayStr=plainText.getBytes();
Base64 base64=new Base64();
btyeArrayStr=base64.encode(btyeArrayStr);
try {
encodeBase64Str =new String(btyeArrayStr,"UTF-8");
} catch (Exception e) {
log.error("ERROR IN  HotBuyServiceImpl ===> encodeBase64Str method ",e);
}
}
return encodeBase64Str;
}


view 解析代码如下:

页面解析建议用 div,然后 display:none .因为 input hidden 字段长度有限

var msgDesc=$("#divId").html().replace(/(\s*)/g, "");  注意替换一下特殊字符
$.base64.decode(msgDesc, 'utf8') 一定要注意引用 utf8务端加密方式一致。


方案2:view 端通过CryptoJS 解密 需要引入:core-min.js , base64.js 稍后会上传js。

view 解析代码如下:

var msgDesc=$("#divId").html().replace(/(\s*)/g, "");  注意替换一下特殊字符
var msgDescVar = CryptoJS.enc.Base64.parse(msgDesc);
msgDescVar .toString(CryptoJS.enc.Utf8);

function base64_encode() {
var str = CryptoJS.enc.Utf8.parse(jQuery("#content").val());
var base64 = CryptoJS.enc.Base64.stringify(str);
$("#result").val(base64);
}
function base64_decode() {
var words = CryptoJS.enc.Base64.parse(divValue);
$("#DivId").val(words.toString(CryptoJS.enc.Utf8));
}


js 详细见 :http://download.csdn.net/detail/tangpengtao/9100879
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: