Js base64 加密解密介绍

2014-04-01  来源:本站原创  分类:javascript技巧  人气:4 

想必大家对base64并不陌生吧,在本文将为大家介绍下Js中的base64加密解密过程,感兴趣的朋友不要错过

<script type="text/javascript"> 

var base64encodechars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64decodechars = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1); 

function base64encode(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;
} 

function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out; 

len = str.length; 

i = 0;
out = "";
while (i < len) { 

do {
c1 = base64decodechars[str.charCodeAt(i++) & 0xff];
} while (i < len && c1 == -1);
if (c1 == -1)
break; 

do {
c2 = base64decodechars[str.charCodeAt(i++) & 0xff];
} while (i < len && c2 == -1);
if (c2 == -1)
break; 

out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4)); 

do {
c3 = str.charCodeAt(i++) & 0xff;
if (c3 == 61)
return out;
c3 = base64decodechars[c3];
} while (i < len && c3 == -1);
if (c3 == -1)
break; 

out += String.fromCharCode(((c2 & 0xf) << 4) | ((c3 & 0x3c) >> 2)); 

do {
c4 = str.charCodeAt(i++) & 0xff;
if (c4 == 61)
return out;
c4 = base64decodechars[c4];
} while (i < len && c4 == -1);
if (c4 == -1)
break;
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
}
</script>
相关文章
  • Js base64 加密解密介绍 2014-04-01

    想必大家对base64并不陌生吧,在本文将为大家介绍下Js中的base64加密解密过程,感兴趣的朋友不要错过 <script type="text/javascript"> var base64encodechars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var base64decodechars = new Array( -1, -1, -1, -1,

  • 浅谈Javascript Base64 加密解密 2013-11-25

    这篇文章主要简单介绍了Javascript Base64 加密解密的使用方法,有需要的小伙伴参考下 html代码: <!DOCTYPE html> <html> <head> <title>Page Title</title> <style type="text/css"> *{font-family: Consolas;font-style: italic} .responsebox{width:900px;ma

  • go语言base64加密解密的方法 2014-07-30

    这篇文章主要介绍了go语言base64加密解密的方法,实例分析了Go语言base64加密解密的技巧,需要的朋友可以参考下 本文实例讲述了go语言base64加密解密的方法.分享给大家供大家参考.具体实现方法如下: package main import ( "encoding/base64" "fmt" ) const ( base64Table = "123QRSTUabcdVWXYZHijKLAWDCABDstEFGuvwxyzGHIJklmnopqr

  • java常用工具类之DES和Base64加密解密类 2014-12-09

    这篇文章主要介绍了java常用工具类之DES和Base64加密解密类,需要的朋友可以参考下 一.DES加密和解密 package com.itjh.javaUtil; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRando

  • php使用base64加密解密图片示例分享 2015-03-22

    这篇文章主要介绍了php使用base64加密解密图片的示例,大家参考使用吧 <?php //文件名:base64.php $data="/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2N

  • .net调用JScript脚本及JS url加密解密 2014-03-06

    .net调用JScript脚本及JS url加密解密,需要的朋友可以参考一下 .net 使用escape 和 unescape方法: 在 C# 里,使用 escape 和 unescape,添加引用: Microsoft.JScript string strEscaped = Microsoft.JScript.GlobalObject.escape("测试打"); 注意:js的一些函数,在 jscript.net 里,全部放在 GlobalObject 下 同样, 就可以使用 une

  • 基于Java实现的Base64加密.解密原理代码 2013-11-13

    这篇文章主要介绍了基于Java实现的Base64加密.解密原理代码,需要的朋友可以参考下 一.概述 1.Base64是什么: Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单

  • Base64加密解密原理以及代码实现 2014-12-15

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此

  • C# 下base64加密解密实现 2012-03-09

    using System; using System.Collections.Generic; using System.Text; namespace MyLibs.encrypt { public class Base64 { private static string base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";//编码后的字符集 private st

  • java &android base64加密解密 2013-05-20

    最近自己的在搞一个小app,需要加密部分数据,我找到了以前的项目代码,发现这个加密还能正常用,就贴出来吧: package com.block.lrc.main; /** * base64 工具集 * */ public class Base64 { private static final byte[] encodingTable = { (byte) 'A', (byte) 'B', (byte) 'C', (byte) 'D', (byte) 'E', (byte) 'F', (byte)

  • 关于base64加密/解密 2014-03-06

    尚不支持中文,有待完善. [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • python的base64加密解密及md5加密 2011-03-06

    import hashlib a = "a test string" print hashlib.md5(a).hexdigest() print hashlib.sha1(a).hexdigest() print hashlib.sha224(a).hexdigest() print hashlib.sha256(a).hexdigest() print hashlib.sha384(a).hexdigest() print hashlib.sha512(a).hexdigest()

  • php中base64_decode与base64_encode加密解密函数实例 2015-01-13

    这篇文章主要介绍了php中base64_decode与base64_encode加密解密函数,实例分析了base64加密解密函数的具体用法,具有一定的实用价值,需要的朋友可以参考下 本文实例讲述了php中base64_decode与base64_encode加密解密函数.分享给大家供大家参考.具体分析如下: 这两个函数在php中是用得对php代码进行加密与解密码的base64_encode是加密,而base64_decode是解密了,下面我们看两个简单实例. base64_encode语法:st

  • python字符串加密解密的三种方法分享(base64 win32com) 2013-11-14

    这篇文章主要介绍了python字符串加密解密的三种方法,包括用base64.使用win32com.client.自己写的加密解密算法三种方法,大家参考使用吧 1. 最简单的方法是用base64: import base64 s1 = base64.encodestring('hello world') s2 = base64.decodestring(s1) print s1,s2 # aGVsbG8gd29ybGQ=\n # hello world Note: 这是最简单的方法了,但是不够保险

  • C#实现基于Base64的加密解密类实例 2015-01-02

    这篇文章主要介绍了C#实现基于Base64的加密解密类,实例分析了C#基于Base64的加密解密实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#实现基于Base64的加密解密类.分享给大家供大家参考.具体如下: 这个C#类是一个基于Base64的加密和解密类,用户可以可以使用默认的秘钥进行加密.解密,也可以自己设定秘钥进行加密和解密,非常实用 using System; using System.Security.Cryptography; using System.Te

  • 关于加密解密 Base64 and URL and Hex Encoding and Decoding 2013-10-13

    今天想换一下Discuz论坛的风格,谁知下载风格文件后,发现竟然是通过Base64加密过的 小林给推荐了个解密的页面,提取出代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Base64 and URL and Hex Encoding and Decoding</title> <meta

  • vbs版的解密base64加密的脚本 2014-05-16

    vbs版的解密base64加密的脚本 Function fDecode(sStringToDecode) 'This function will decode a Base64 encoded string and returns the decoded string. 'This becomes usefull when attempting to hide passwords from prying eyes. Const CharList = "ABCDEFGHIJKLMNOPQRSTUV

  • js加密解密字符串可自定义密码因子 2014-06-11

    这篇文章主要为大家演示下js加密解密字符串可以自定义密码因子,需要的朋友可以参考下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <h

  • rsa实现js前台加密java后台解密 2013-04-09

    前段时间咱老大吩咐我写一个rsa前台加密到后台用java解密.(说实话这之前我还真没用过) 不过没办法啊,这是任务,于是研究了一下.圆满完成任务了,下面共享下实现思路: 准备工作:其实鄙人也没那么强啦,第三方包是必须的 bcprov-jdk15on-148.jar commons-codec-1.7.jar commons-lang-2.4.jar log4j-1.2.15.jar slf4j-api-1.6.1.jar //关键工具类 package com.web.utils; import

  • asp实现的sha1加密解密代码(和C#兼容) 2015-02-25

    这篇文章主要介绍了asp实现的sha1加密解密代码,可以和ASP.NET(C#)相互兼容,需要的朋友可以参考下 在百度找的几个asp sha1(vbs写的)加密结果和asp.net的sha1加密结果不一样,asp.net sha1加密完后是40位,网上找的asp sha1加密是64位,还以为asp.net做了截取(如网上的asp的md5机密和asp.net位数不一样,是做了截取的问题),但是asp的64位加密结果并没有包含asp.net的40位结果,看来找到的版本和asp.net的加密算法不一样