微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

新手base64前台加密

对于前台来说,储存用户注册的信息,当然不能以明文的方式写入数据库,这就用到了加密。

不废话,先贴我的前台js加密代码

/*
*js的类名Encode.js
*基于base64的前台标准加密代码
*简单的写到js里,用的时候直接加载Encode.js类
*
*/
var base64encodechars = "ABCDEFGHIJKLMnopQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var encode={

		base64encode:function(str) {

			var out,i,len;
			var c1,c2,c3;
			len = str.length;
			i = 0;
			out = "";
			while (i < len) {
				c1 = str.charCodeAt(i++) & 0xff;
				if (i == len) {
					out += base64encodechars.charat(c1 >> 2);
					out += base64encodechars.charat((c1 & 0x3) << 4);
					out += "==";
					break;
				}
				c2 = str.charCodeAt(i++);
				if (i == len) {
					out += base64encodechars.charat(c1 >> 2);
					out += base64encodechars.charat(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));
					out += base64encodechars.charat((c2 & 0xf) << 2);
					out += "=";
					break;
				}
				c3 = str.charCodeAt(i++);
				out += base64encodechars.charat(c1 >> 2);
				out += base64encodechars.charat(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));
				out += base64encodechars.charat(((c2 & 0xf) << 2) | ((c3 & 0xc0) >> 6));
				out += base64encodechars.charat(c3 & 0x3f);
			}
			return out;
		},utf16to8:function(str) {			
			var out,len,c;
			out = "";
			len = str.length;
			for (i = 0; i < len; i++) {
				c = str.charCodeAt(i);
				if ((c >= 0x0001) && (c <= 0x007f)) {
					out += str.charat(i);
				} else if (c > 0x07ff) {
					out += String.fromCharCode(0xe0 | ((c >> 12) & 0x0f));
					out += String.fromCharCode(0x80 | ((c >> 6) & 0x3f));
					out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));
				} else {
					out += String.fromCharCode(0xc0 | ((c >> 6) & 0x1f));

					out += String.fromCharCode(0x80 | ((c >> 0) & 0x3f));
				}
			}
			return out;
		}
}
当然前后台数据交互用到了ajax,下面是ajax的js代码
/*
*js的类名Ajax.js
*用的时候直接加载Ajax.js
*参数大家根据需要自己增删
*
*/
var DataDeal = {
		/*  功能          :          处理数据
	     *  dbsrc :    用于扩展
	     *  id    :    总表 id,用于获取tableName,field等信息
	     *  dtobj :    从前台获取的json数据 
	     *  url   :    公共servlet的servlet
	     *  data  :    包含id和json数据
	     *  method:    在后台调用方法
	     *  return:    reobj--从dervlet返回的数据
	     *  ****************        
	     * */
	    dealData: function (dbsrc,id,dtobj,method,succFunc) {
	         	var vsJsonData="";
	    	    vsJsonData= { "id": id,"dataJson": dtobj,"method":method};
		        var reobj;
		        $.ajax({
		            url: '../servlet/CommonServlet',type: "post",data: vsJsonData,dataType: "json",async: false,success:
		        function (reval) {
		            if (typeof (succFunc) == 'function') {
		                succFunc(reval);
		            }
		            else {
		                reobj = reval;
		            }
		  			
下面就来发一下我ajax前后台数据交互的加密代码
/*
*
*loginForm为我的Form的id
*name为用户名
*password为密码
*value为输入值
*
*/
DataDeal.dealData(
	null,"1","{\"name\":\""
	+ loginForm.name.value
	+ "\",\"password\":\""
	+ encode.base64encode(encode.utf16to8(loginForm.password.value))
	+ "\"}","add",function(data) {
	loginDialog.dialog('close');
	alert(data.msg);
	},function() {
		alert(data.msg);
	}
);
大家如果还有什么疑问,可以直接回复我,我一定最快答复你。

原文地址:https://www.jb51.cc/ajax/164971.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐