Base64編碼解碼詳解
npm:
In Browser
node.js
var Base64 = Base64;es6+
;npm
$ npm install --save js-base64SYNOPSIS
Base64; // ZGFua29nYWk=Base64; // 5bCP6aO85by+Base64; // 5bCP6aO85by-String Extension for ES5
if Base64extendString // you have to explicitly extend String.prototype Base64; // once extended, you can do the following 'dankogai'; // ZGFua29nYWk= '小飼弾'; // 5bCP6aO85by+ '小飼弾'; // 5bCP6aO85by- '小飼弾'; // 5bCP6aO85by- 'ZGFua29nYWk='; // dankogai '5bCP6aO85by+'; // 小飼弾TypeScript
TypeScript 2.0 type definition was added to the DefinitelyTyped repository.
$ npm install --save @types/js-base641.加密解密方法使用:
[javascript] view plain copy- //1.加密
- var str = '124中文內容';
- var base = new Base64();
- var result = base.encode(str);
- //document.write(result);
- //2.解密
- var result2 = base.decode(result);
- document.write(result2);
2.加密、解密演算法封裝:
[javascript] view plain copy- /**
- *
- * Base64 encode / decode
- *
- * @author haitao.tu
- * @date 2010-04-26
- * @email [email protected]
- *
- */
- function Base64() {
- // private property
- _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
- // public method for encoding
- this.encode = function (input) {
- var output = "";
- var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
- var i = 0;
- input = _utf8_encode(input);
- while (i < input.length) {
- chr1 = input.charCodeAt(i++);
- chr2 = input.charCodeAt(i++);
- chr3 = input.charCodeAt(i++);
- enc1 = chr1 >> 2;
- enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
- enc4 = chr3 & 63;
- if (isNaN(chr2)) {
- enc3 = enc4 = 64;
- } elseif (isNaN(chr3)) {
- enc4 = 64;
- }
- output = output +
- _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
- _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
- }
- return output;
- }
- // public method for decoding
- this.decode = function (input) {
- var output = "";
- var chr1, chr2, chr3;
- var enc1, enc2, enc3, enc4;
- var i = 0;
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
- while (i < input.length) {
- enc1 = _keyStr.indexOf(input.charAt(i++));
- enc2 = _keyStr.indexOf(input.charAt(i++));
- enc3 = _keyStr.indexOf(input.charAt(i++));
- enc4 = _keyStr.indexOf(input.charAt(i++));
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
- output = output + String.fromCharCode(chr1);
- if (enc3 != 64) {
- output = output + String.fromCharCode(chr2);
- }
- if (enc4 != 64) {
- output = output + String.fromCharCode(chr3);
- }
- }
- output = _utf8_decode(output);
- return output;
- }
- // private method for UTF-8 encoding
- _utf8_encode = function (string) {
- string = string.replace(/\r\n/g,"\n");
- var utftext = "";
- for (var n = 0; n < string.length; n++) {
- var c = string.charCodeAt(n);
- if (c < 128) {
- utftext += String.fromCharCode(c);
- } elseif((c > 127) && (c < 2048)) {
- utftext += String.fromCharCode((c >> 6) | 192);
- utftext += String.fromCharCode((c & 63) | 128);
- } else {
- utftext += String.fromCharCode((c >> 12) | 224);
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- }
- return utftext;
- }
- // private method for UTF-8 decoding
- _utf8_decode = function (utftext) {
- var string = "";
- var i = 0;
- var c = c1 = c2 = 0;
- while ( i < utftext.length ) {
- c = utftext.charCodeAt(i);
- if (c < 128) {
- string += String.fromCharCode(c);
- i++;
- } elseif((c > 191) && (c < 224)) {
- c2 = utftext.charCodeAt(i+1);
- string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
- i += 2;
- } else {
- c2 = utftext.charCodeAt(i+1);
- c3 = utftext.charCodeAt(i+2);
-
相關推薦
Base64編碼解碼詳解
npm:In Browser<script src="base64.js"></script>node.jsvar Base64 = require('js-base64').B
PHP和javascript中url編碼解碼詳解
http 遇到 註意 spa color 空格 www. col test 在實際開發中,我們可能會遇到路徑編碼解碼的問題,下面總結了一下: PHP中: 1、urlencode(編碼),urldecode(解碼) $a = urlencode(‘http://www.
JS中encodeURIComponent(URL)編碼與decodeURIComponent(URL)解碼詳解
(1) encodeURIComponent(url) 函式 定義和用法 encodeURIComponent() 函式可把字串作為 URI 元件進行編碼。 語法
JS實現—Base64編碼解碼,帶16進制顯示
ech encode break 復制代碼 bre zab idt pts image 代碼如下: <!DOCTYPE html> <html> <head> <meta name="viewport" conte
Css中路徑data:image/png;base64的用法詳解 (轉載)
javascrip base64編碼 asc cda 文件的 color 情況 ont 背景圖片 大家可能註意到了,網頁上有些圖片的src或css背景圖片的url後面跟了一大串字符,比如: background-image:url(data:image/png;bas
[轉載]Python3編碼問題詳解
alt ror 清晰 handle 種類型 對應關系 and 技術 字節數 原文:Python3的編碼問題 Python3 最重要的一項改進之一就是解決了 Python2 中字符串與字符編碼遺留下來的這個大坑。Python 編碼為什麽那麽蛋疼?已經介紹過 Python2 字
編碼原理詳解(一)----簡介
傳輸 冗余 shadow 溫習 自己 ext 區域 興趣 圖片 本節開始,給大家系列介紹一下關於編碼原理的相關知識,可能會涉及到部分算法的知識,也就意味著會相對枯燥一些,筆者盡自己所能,努力的追求簡單,同時把原理清晰的呈現給大家。 一、編碼 編碼已經是一個老聲長談的
編碼原理詳解(二)---變換編碼
mar 關於 詳解 tex 描述 原理 學習 編碼原理 watermark 本篇介紹編碼原理中的變換編碼。 一、變換的目的和作用: 變換編碼的作用是將空間域描述的圖像信號變換到頻率域,然後對變換後的系數進行編碼處理。一般來說,圖像在空間上具有較強的相關性,變換到頻率
編碼原理詳解(三)---量化
進一步 mark 新的 dct 說明 一點 註意 cto water 本節開始介紹編碼過程中的量化環節。還記得上一篇的變換嗎?變換之後得到了一個新的矩陣,一個經過從空域變換到頻域的一個矩陣。那麽,量化呢,就是基於變換後得到的矩陣,再做進一步的處理,本質也就是進一步的壓縮。
編碼原理詳解(四)---之字形掃描
便是 集中 img 詳解 工作 -- 漢字 如何 編碼原理 上一篇我們講到,經過量化後得到了諸多零值和整數值,本篇接下來講講編碼過程中過對這些值如何組織和處理,那就是ZigZag掃描嘍。 一、簡介 ZigZag掃描也稱作之字形掃描,何以得此稱謂,是因為其掃描的路徑特
linux下進行base64編碼解碼
image 分享 clas 技術分享 post blog div img 技術 1.編碼 2.解碼 linux下進行base64編碼解碼
Java Base64 編碼解碼方案總結
缺點 system 類別 字串 轉換 一點 text encoder bin Base64是一種能將任意Binary資料用64種字元組合成字串的方法,而這個Binary資料和字串資料彼此之間是可以互相轉換的,十分方便。在實際應用上,Base64除了能將Binary資料可視化
GB2312、GBK、ISO-8859-1、ASCII碼、Unicode、UTF-8各種編碼格式詳解(終於搞懂了)
從計算機編碼歷史這條主線來理解各種編碼格式 計算機發明於歐美語系世界,最初只需要處理英文字母的編碼就可以了,也就是ISO-8859-1編碼規範;後來傳到中國,原有的編碼規範不能識別中文,於是發展出了GB2312、GBK等格式來編碼中文,同樣的對於阿拉伯語系、德俄西班牙之類的也會有其相應的編碼
java 按位元組讀寫二進位制檔案(Base64編碼解碼)
最近在做專案時遇到這樣一個需求:依次讀取本地資料夾裡所有檔案的內容,轉為JSON,傳送到ActiveMQ的訊息佇列, 然後從MQ的訊息佇列上獲取檔案的資訊,依次寫到本地。常見的檔案型別,比如.txt 和.png等檔案的讀寫並不難。但是,我剛才所提到的需求,如果用常規的方法去讀寫,比如按位元組讀取檔案內容
java 按字節讀寫二進制文件(Base64編碼解碼)
h+ lee bean 字節數組 inpu 讀取 write bytearray 轉換工具類 最近在做項目時遇到這樣一個需求:依次讀取本地文件夾裏所有文件的內容,轉為JSON,發送到ActiveMQ的消息隊列, 然後從MQ的消息隊列上獲取文件的信息,依次寫到本地。常見的文
python2,python3中的base64編碼解碼
Base64編碼是一種“防君子不防小人”的編碼方式。廣泛應用於MIME協議,作為電子郵件的傳輸編碼,生成的編碼可逆,後一兩位可能有“=”,生成的編碼都是ascii字元。 優點:速度快,ascii字元,肉眼不可理解 缺點:編碼比較長,非常容易被破解,僅適用於加密非關鍵資訊的場
FFmpeg解碼詳解(原理與函式使用說明)
視訊解碼知識 •純淨的視訊解碼流程 ▫壓縮編碼資料->畫素資料。 ▫例如解碼H.264,就是“H.264碼流->YUV”。 •一般的視訊解碼流程 ▫視訊碼流一般儲存在一定的封裝格式(例如MP4、AVI等)中。封裝格式中通常還包含音訊碼流等內容。 ▫對於封裝格式中的
JavaScript base64編碼解碼
----script------ 1a你 MWHkvaA= var b = new Base64(); var eid = b.encode('1a你'); console.log(eid); &nbs
java網路圖片Base64編碼解碼
編碼 /** * 線上圖片Base64編碼 * @param link 線上圖片請求地址 * @return * @throws IOException */ public static String toBase
ASP對base64編碼解碼程式
針對郵件退信,內容進行解碼!網上收集,具體出處不詳! <form name="form1" method="post" action=""> <table width="95%" border="0" align="center" cellpadding=