jQuery--base64前台加密解密
来源:互联网 发布:自动化交易软件 编辑:程序博客网 时间:2024/05/18 00:18
关于加密,很多人想到encodeURI和escape。这个对加密url,尤其是带中文参数的url很有用。
如果只是想做加密解密,类似于java的DES,网上jQuery有个jquery.base64.js。
(关于js的md5加密可以用jquery.md5.js,有兴趣可以找来测试一下)。
下面是测试:
<html><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script language="javascript" src="jquery-1.7.1.js"></script> <script language="javascript" src="jquery.base64.js"></script></head><body><input id="path" name="path" type="hidden" value="haha"></input><input id="putcardno01" name="putcardno01" type="text" size="65" value=""></input><br><input onclick="subfunc();" class="btn1" value="提交加密" type="button"></input><br>加密后:<input id="putcardno02" name="putcardno02" type="text" size="65" value=""></input><br><input onclick="subfunc02();" class="btn1" value="提交解密" type="button"></input><br><br><hr><input onclick="subfunc03();" class="btn1" value="提交N次加密" type="button"></input><br>加密后:<input id="putcardno03" name="putcardno03" type="text" size="65" value=""></input><br><input onclick="subfunc04();" class="btn1" value="提交N次解密" type="button"></input><br><br><input onclick="clearrr();" class="btn1" value="清除" type="button"></input><br><textarea id='txt' cols="75" rows="19"></textarea></body><script language="javascript">var path=document.getElementById("path").value;function app(info){ $("#txt").val($("#txt").val()+'\n'+info);}function subfunc(){ var put1=$.trim($("#putcardno01").val()); // var estxt=$.base64.encode(put1); //var estxt=$.base64.btoa(put1); var estxt=encodeBase64(put1); $("#putcardno02").val(estxt); app("加密后["+estxt+"]");}function subfunc02(){ var put1=$.trim($("#putcardno02").val()); //var estxt=$.base64.decode(put1); //var estxt=$.base64.atob(put1); var estxt=decodeBase64(put1); app("解密后["+estxt+"]");}//////////////////////////////////////////var numTimes=5;function subfunc03(){ var put1=$.trim($("#putcardno01").val()); // var estxt=$.base64.encode(put1); //var estxt=$.base64.btoa(put1); //estxt=$.base64.btoa(estxt); estxt=encodeBase64(put1,numTimes); $("#putcardno03").val(estxt); app(numTimes+"次加密后["+estxt+"]");}function subfunc04(){ var put1=$.trim($("#putcardno03").val()); //var estxt=$.base64.decode(put1); //var estxt=$.base64.atob(put1); //estxt=$.base64.atob(estxt); estxt=decodeBase64(put1,numTimes); app(numTimes+"次解密后["+estxt+"]");}function clearrr(){ $("#putcardno02").val(""); $("#putcardno03").val(""); $("#putcardno04").val(""); $("#txt").val("");}//加密方法。没有过滤首尾空格,即没有trim.//加密可以加密N次,对应解密N次就可以获取明文function encodeBase64(mingwen,times){var code="";var num=1; if(typeof times=='undefined'||times==null||times==""){ num=1;}else{ var vt=times+""; num=parseInt(vt);} if(typeof mingwen=='undefined'||mingwen==null||mingwen==""){}else{$.base64.utf8encode = true;code=mingwen;for(var i=0;i<num;i++){ code=$.base64.btoa(code);}}return code;}//解密方法。没有过滤首尾空格,即没有trim//加密可以加密N次,对应解密N次就可以获取明文function decodeBase64(mi,times){var mingwen="";var num=1; if(typeof times=='undefined'||times==null||times==""){ num=1;}else{ var vt=times+""; num=parseInt(vt);} if(typeof mi=='undefined'||mi==null||mi==""){}else{ $.base64.utf8encode = true; mingwen=mi; for(var i=0;i<num;i++){ mingwen=$.base64.atob(mingwen); }}return mingwen;}/*测试输入 suolong2014version加密后[c3VvbG9uZzIwMTR2ZXJzaW9u]解密后[suolong2014version]5次加密后[VjFod1QxWXlVblJUYTJoUVYwWmFhRnBYZEhOTk1WSlhWV3hPVG1KSVFscFZNalYzWVVaYU5tSkVSVDA9]5次解密后[suolong2014version]*/</script>
在后台加密解密是不是和前台一样?
我们测试一下:
package com.code;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/** * * Base64加密--解密 * * @author lushuaiyin * */public class Base64Util {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub String str="suolong2014version"; System.out.println("测试明文["+str+"]"); String basecode =Base64Util.encodeBase64(str);System.out.println("加密后["+basecode+"]");if(basecode!=null){String res =Base64Util.decodeBase64(basecode);System.out.println("解密后["+res+"]");}/////////////////////////////////////////System.out.println("");System.out.println("N次加密测试--------");String basecodeN=Base64Util.encodeBase64(str, 2);String resN=Base64Util.decodeBase64(basecodeN, 2);String basecodeN3=Base64Util.encodeBase64(str, 5);String resN3=Base64Util.decodeBase64(basecodeN3, 5);}//提供加密N次public static String encodeBase64(String mingwen,int times){int num=(times<=0)?1:times;String code="";if(mingwen==null||mingwen.equals("")){}else{code=mingwen;for(int i=0;i<num;i++){code=encodeBase64(code);}System.out.println("加密"+num+"次后["+code+"]");}return code;}//对应提供解密N次public static String decodeBase64(String mi,int times){int num=(times<=0)?1:times;String mingwen="";if(mi==null||mi.equals("")){}else{mingwen=mi;for(int i=0;i<num;i++){mingwen=decodeBase64(mingwen);}System.out.println("解密"+num+"次后["+mingwen+"]");}return mingwen;}///////////////////////////////////////////////////////////////////public static String encodeBase64(String mingwen){String code="";if(mingwen==null||mingwen.equals("")){}else{BASE64Encoder encoder = new BASE64Encoder();try {code=encoder.encode(mingwen.getBytes());} catch (Exception e) {e.printStackTrace();}//System.out.println("加密后["+code+"]");}return code;}public static String decodeBase64(String mi){String mingwen="";if(mi==null||mi.equals("")){}else{BASE64Decoder decoder = new BASE64Decoder();try {byte[] by = decoder.decodeBuffer(mi);mingwen = new String(by);} catch (Exception e) {e.printStackTrace();}//System.out.println("解密后["+mingwen+"]");}return mingwen;}}/*打印:测试明文[suolong2014version]加密后[c3VvbG9uZzIwMTR2ZXJzaW9u]解密后[suolong2014version]N次加密测试--------加密2次后[YzNWdmJHOXVaekl3TVRSMlpYSnphVzl1]解密2次后[suolong2014version]加密5次后[VjFod1QxWXlVblJUYTJoUVYwWmFhRnBYZEhOTk1WSlhWV3hPVG1KSVFscFZNalYzWVVaYU5tSkVSVDA9]解密5次后[suolong2014version]*/
从结果上看,jquery.base64.js加密解密和java的base64加密解密是一样的。
1 0
- jQuery--base64前台加密解密
- JS实现BASE64加密解密-后台加密前台解密案例分析
- 新手base64前台加密
- base64 加密解密函数
- BASE64加密/解密
- BASE64加密解密
- Base64 加密 解密
- base64加密解密
- Base64加密和解密
- Base64加密、解密
- Base64加密解密
- base64加密解密
- javascript Base64加密解密
- base64的加密解密
- Java BASE64加密解密
- base64 加密解密
- BASE64加密解密(字符串)
- Base64 加密 解密
- jquery 放大镜效果 jqzoom_心碎逍遥_新浪博客 http://blog.sina.com.cn/s/blog_4b5bc011010133rq.html
- sublime的代码格式化
- dojo/request/xhr
- [BASIC-21] Sine之舞
- Eclipse插件之Findbugs
- jQuery--base64前台加密解密
- 梦里的路
- python循环删除的陷阱
- OPENCV
- wap和net区别
- JPA Multiple writable mappings exist for the field [{0}]. Only one may be defined as writable, all o
- List.toArray()出现ClassCastException
- linux 无root权限安装tmux
- Ubuntu下Hello World驱动实现全过程