最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

base64实现加密解密功能

来源:懂视网 责编:小采 时间:2020-11-27 19:53:03
文档

base64实现加密解密功能

base64实现加密解密功能:这次给大家带来base64实现加密解密功能,base64实现加密解密功能的注意事项有哪些,下面就是实战案例,一起来看一下。关于加密,很多人想到encodeURI和escape。这个对加密url,尤其是带中文参数的url很有用。 如果只是想做加密解密,类似于Java的DES,
推荐度:
导读base64实现加密解密功能:这次给大家带来base64实现加密解密功能,base64实现加密解密功能的注意事项有哪些,下面就是实战案例,一起来看一下。关于加密,很多人想到encodeURI和escape。这个对加密url,尤其是带中文参数的url很有用。 如果只是想做加密解密,类似于Java的DES,

这次给大家带来base64实现加密解密功能,base64实现加密解密功能的注意事项有哪些,下面就是实战案例,一起来看一下。

关于加密,很多人想到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">
varpath=document.getElementById("path").value;
functionapp(info){
 $("#txt").val($("#txt").val()+'
'+info);
}
functionsubfunc(){
 varput1=$.trim($("#putcardno01").val());
 // var estxt=$.base64.encode(put1);
 //var estxt=$.base64.btoa(put1);
 varestxt=encodeBase64(put1);
 $("#putcardno02").val(estxt);
 app("加密后["+estxt+"]");
}
functionsubfunc02(){
 varput1=$.trim($("#putcardno02").val());
 //var estxt=$.base64.decode(put1);
 //var estxt=$.base64.atob(put1);
 varestxt=decodeBase64(put1);
 app("解密后["+estxt+"]");
}
//////////////////////////////////////////
varnumTimes=5;
functionsubfunc03(){
 varput1=$.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+"]");
}
functionsubfunc04(){
 varput1=$.trim($("#putcardno03").val());
 //var estxt=$.base64.decode(put1);
 //var estxt=$.base64.atob(put1);
 //estxt=$.base64.atob(estxt);
 estxt=decodeBase64(put1,numTimes);
 app(numTimes+"次解密后["+estxt+"]");
}
functionclearrr(){
 $("#putcardno02").val("");
 $("#putcardno03").val("");
 $("#putcardno04").val("");
 $("#txt").val("");
}
//加密方法。没有过滤首尾空格,即没有trim.
//加密可以加密N次,对应解密N次就可以获取明文
functionencodeBase64(mingwen,times){
 varcode="";
 varnum=1;
 if(typeoftimes=='undefined'||times==null||times==""){
 num=1;
 }else{
 varvt=times+"";
 num=parseInt(vt);
 }
 if(typeofmingwen=='undefined'||mingwen==null||mingwen==""){
 }else{
 $.base64.utf8encode =true;
 code=mingwen;
 for(vari=0;i<num;i++){
 code=$.base64.btoa(code);
 }
 }
 returncode;
}
//解密方法。没有过滤首尾空格,即没有trim
//加密可以加密N次,对应解密N次就可以获取明文
functiondecodeBase64(mi,times){
 varmingwen="";
 varnum=1;
 if(typeoftimes=='undefined'||times==null||times==""){
 num=1;
 }else{
 varvt=times+"";
 num=parseInt(vt);
 }
 if(typeofmi=='undefined'||mi==null||mi==""){
 }else{
 $.base64.utf8encode =true;
 mingwen=mi;
 for(vari=0;i<num;i++){
 mingwen=$.base64.atob(mingwen);
 }
 }
 returnmingwen;
}
/*
测试
输入 suolong2014version
加密后[c3VvbG9uZzIwMTR2ZXJzaW9u]
解密后[suolong2014version]
5次加密后[VjFod1QxWXlVblJUYTJoUVYwWmFhRnBYZEhOTk1WSlhWV3hPVG1KSVFscFZNalYzWVVaYU5tSkVSVDA9]
5次解密后[suolong2014version]
*/
</script>

在后台加密解密是不是和前台一样?

我们测试一下:

packagecom.code;
importsun.misc.BASE64Decoder;
importsun.misc.BASE64Encoder;
/**
 *
 * Base64加密--解密
 *
 * @author lushuaiyin
 *
 */
publicclassBase64Util {
 /**
 * @param args
 */
 publicstaticvoidmain(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次
 publicstaticString encodeBase64(String mingwen,inttimes){
 intnum=(times<=0)?1:times;
 String code="";
 if(mingwen==null||mingwen.equals("")){
 }else{
 code=mingwen;
 for(inti=0;i<num;i++){
 code=encodeBase64(code);
 }
 System.out.println("加密"+num+"次后["+code+"]");
 }
 returncode;
 }
 //对应提供解密N次
 publicstaticString decodeBase64(String mi,inttimes){
 intnum=(times<=0)?1:times;
 String mingwen="";
 if(mi==null||mi.equals("")){
 }else{
 mingwen=mi;
 for(inti=0;i<num;i++){
 mingwen=decodeBase64(mingwen);
 }
 System.out.println("解密"+num+"次后["+mingwen+"]");
 }
 returnmingwen;
 }
 ///////////////////////////////////////////////////////////////////
 publicstaticString encodeBase64(String mingwen){
 String code="";
 if(mingwen==null||mingwen.equals("")){
 }else{
 BASE64Encoder encoder =newBASE64Encoder();
 try{
 code=encoder.encode(mingwen.getBytes());
 }catch(Exception e) {
 e.printStackTrace();
 }
// System.out.println("加密后["+code+"]");
 }
 returncode;
 }
 publicstaticString decodeBase64(String mi){
 String mingwen="";
 if(mi==null||mi.equals("")){
 }else{
 BASE64Decoder decoder =newBASE64Decoder();
 try{
 byte[] by = decoder.decodeBuffer(mi);
 mingwen =newString(by);
 }catch(Exception e) {
 e.printStackTrace();
 }
// System.out.println("解密后["+mingwen+"]");
 }
 returnmingwen;
 }
}
/*
打印:
测试明文[suolong2014version]
加密后[c3VvbG9uZzIwMTR2ZXJzaW9u]
解密后[suolong2014version]
N次加密测试--------
加密2次后[YzNWdmJHOXVaekl3TVRSMlpYSnphVzl1]
解密2次后[suolong2014version]
加密5次后[VjFod1QxWXlVblJUYTJoUVYwWmFhRnBYZEhOTk1WSlhWV3hPVG1KSVFscFZNalYzWVVaYU5tSkVS
VDA9]
解密5次后[suolong2014version]
*/

从结果上看,jquery.base64.js加密解密和java的base64加密解密是一样的。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

jQuery做出页面遮罩层效果

在jquery中怎么使用键盘事件

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

base64实现加密解密功能

base64实现加密解密功能:这次给大家带来base64实现加密解密功能,base64实现加密解密功能的注意事项有哪些,下面就是实战案例,一起来看一下。关于加密,很多人想到encodeURI和escape。这个对加密url,尤其是带中文参数的url很有用。 如果只是想做加密解密,类似于Java的DES,
推荐度:
标签: 加密 实现 解密
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top