packagecom.esint.ztb.util;importsun.misc.BASE64Decoder;importsun.misc.BASE64Encoder;importjava.io.UnsupportedEncodingException;//应对明文传输问题publicclassBase64{// 加密publicstaticStringencode(String str){byte[] b =null;String s =null;try{
b = str.getBytes("utf-8");}catch(UnsupportedEncodingException e){
e.printStackTrace();}if(b !=null){
s =newBASE64Encoder().encode(b);//据RFC 822规定,每76个字符,还需要加上一个回车换行去掉换行符
s = s.replaceAll("[\\s*\t\n\r]","");}return s;}// 解密publicstaticStringdecode(String s){byte[] b =null;String result =null;if(s !=null){BASE64Decoder decoder =newBASE64Decoder();try{
b = decoder.decodeBuffer(s);
result =newString(b,"utf-8");}catch(Exception e){
e.printStackTrace();}}return result;}//使用方法publicstaticvoidmain(String[] args){String s ="你好,The Word!";//System.out.println(s.length());String enStr =encode(s);String deStr =decode(enStr);System.out.println("原始数据:"+s+"\n加密数据:"+enStr+"\n解密数据:"+deStr);}}
2、js
/*!
* jquery.base64.js 0.1 - https://github.com/yckart/jquery.base64.js
* Makes Base64 en & -decoding simpler as it is.
*
* Based upon: https://gist.github.com/Yaffle/1284012
*
* Copyright (c) 2012 Yannick Albert (http://yckart.com)
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
* 2013/02/10
**//**
* Created by SLICE_30_K on 2017/5/22.
*
* 支持一般Base64的编码和解码
* 支持符合RFC_4648标准中"URL and Filename Safe Alphabet"的URL安全Base64编解码
* 支持中文字符的编解码(Unicode编码)
*/;(function(root, factory){if(typeof exports ==="object"){// CommonJS
module.exports = exports =factory();}elseif(typeof define ==="function"&& define.amd){// AMDdefine(factory);}else{// Global (browser)
window.BASE64=factory();}}(this,function(){varBASE64_MAPPING=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'];varURLSAFE_BASE64_MAPPING=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','-','_'];var_toBinary=function(ascii){var binary =[];while(ascii >0){var b = ascii %2;
ascii = Math.floor(ascii /2);
binary.push(b);}
binary.reverse();return binary;};var_toDecimal=function(binary){var dec =0;var p =0;for(var i = binary.length -1; i >=0;--i){var b = binary[i];if(b ==1){
dec += Math.pow(2, p);}++p;}return dec;};var_toUTF8Binary=function(c, binaryArray){var mustLen =(8-(c +1))+((c -1)*6);var fatLen = binaryArray.length;var diff = mustLen - fatLen;while(--diff >=0){
binaryArray.unshift(0);}var binary =[];var _c = c;while(--_c >=0){
binary.push(1);}
binary.push(0);var i =0, len =8-(c +1);for(; i < len;++i){
binary.push(binaryArray[i]);}for(var j =0; j < c -1;++j){
binary.push(1);
binary.push(0);var sum =6;while(--sum >=0){
binary.push(binaryArray[i++]);}}return binary;};var_toBinaryArray=function(str){var binaryArray =[];for(var i =0, len = str.length; i < len;++i){var unicode = str.charCodeAt(i);var _tmpBinary =_toBinary(unicode);if(unicode <0x80){var _tmpdiff =8- _tmpBinary.length;while(--_tmpdiff >=0){
_tmpBinary.unshift(0);}
binaryArray = binaryArray.concat(_tmpBinary);}elseif(unicode >=0x80&& unicode <=0x7FF){
binaryArray = binaryArray.concat(_toUTF8Binary(2, _tmpBinary));}elseif(unicode >=0x800&& unicode <=0xFFFF){//UTF-8 3byte
binaryArray = binaryArray.concat(_toUTF8Binary(3, _tmpBinary));}elseif(unicode >=0x10000&& unicode <=0x1FFFFF){//UTF-8 4byte
binaryArray = binaryArray.concat(_toUTF8Binary(4, _tmpBinary));}elseif(unicode >=0x200000&& unicode <=0x3FFFFFF){//UTF-8 5byte
binaryArray = binaryArray.concat(_toUTF8Binary(5, _tmpBinary));}elseif(unicode >=4000000&& unicode <=0x7FFFFFFF){//UTF-8 6byte
binaryArray = binaryArray.concat(_toUTF8Binary(6, _tmpBinary));}}return binaryArray;};var_toUnicodeStr=function(binaryArray){var unicode;var unicodeBinary =[];var str ="";for(var i =0, len = binaryArray.length; i < len;){if(binaryArray[i]==0){
unicode =_toDecimal(binaryArray.slice(i, i +8));
str += String.fromCharCode(unicode);
i +=8;}else{var sum =0;while(i < len){if(binaryArray[i]==1){++sum;}else{break;}++i;}
unicodeBinary = unicodeBinary.concat(binaryArray.slice(i +1, i +8- sum));
i +=8- sum;while(sum >1){
unicodeBinary = unicodeBinary.concat(binaryArray.slice(i +2, i +8));
i +=8;--sum;}
unicode =_toDecimal(unicodeBinary);
str += String.fromCharCode(unicode);
unicodeBinary =[];}}return str;};var_encode=function(str, url_safe){var base64_Index =[];var binaryArray =_toBinaryArray(str);var dictionary = url_safe ?URLSAFE_BASE64_MAPPING:BASE64_MAPPING;var extra_Zero_Count =0;for(var i =0, len = binaryArray.length; i < len; i +=6){var diff =(i +6)- len;if(diff ==2){
extra_Zero_Count =2;}elseif(diff ==4){
extra_Zero_Count =4;}var _tmpExtra_Zero_Count = extra_Zero_Count;while(--_tmpExtra_Zero_Count >=0){
binaryArray.push(0);}
base64_Index.push(_toDecimal(binaryArray.slice(i, i +6)));}var base64 ='';for(var i =0, len = base64_Index.length; i < len;++i){
base64 += dictionary[base64_Index[i]];}for(var i =0, len = extra_Zero_Count /2; i < len;++i){
base64 +='=';}return base64;};var_decode=function(_base64Str, url_safe){var _len = _base64Str.length;var extra_Zero_Count =0;var dictionary = url_safe ?URLSAFE_BASE64_MAPPING:BASE64_MAPPING;if(_base64Str.charAt(_len -1)=='='){if(_base64Str.charAt(_len -2)=='='){//两个等号说明补了4个0
extra_Zero_Count =4;
_base64Str = _base64Str.substring(0, _len -2);}else{//一个等号说明补了2个0
extra_Zero_Count =2;
_base64Str = _base64Str.substring(0, _len -1);}}var binaryArray =[];for(var i =0, len = _base64Str.length; i < len;++i){var c = _base64Str.charAt(i);for(var j =0, size = dictionary.length; j < size;++j){if(c == dictionary[j]){var _tmp =_toBinary(j);/*不足6位的补0*/var _tmpLen = _tmp.length;if(6- _tmpLen >0){for(var k =6- _tmpLen; k >0;--k){
_tmp.unshift(0);}}
binaryArray = binaryArray.concat(_tmp);break;}}}if(extra_Zero_Count >0){
binaryArray = binaryArray.slice(0, binaryArray.length - extra_Zero_Count);}var str =_toUnicodeStr(binaryArray);return str;};var __BASE64 ={encode:function(str){return_encode(str,false);},decode:function(base64Str){return_decode(base64Str,false);},urlsafe_encode:function(str){return_encode(str,true);},urlsafe_decode:function(base64Str){return_decode(base64Str,true);}};return __BASE64;}));//获得加密字符解密后的json对象functiongetJsonObDataBase(data){/*
BASE64.encode(inputStr);//普通Base64编码
BASE64.decode(inputStr);//普通Base64解码
BASE64.urlsafe_encode(inputStr);//url-safe Base64编码
BASE64.urlsafe_decode(inputStr);//url-safe Base64解码
*/var data =BASE64.decode(data.signData);var jQuery1 = jQuery.parseJSON(data);return jQuery1;}