1. 程式人生 > >js 實現 Base64 編碼的相互轉換

js 實現 Base64 編碼的相互轉換

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; } else if (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); } else if((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++; } else if((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); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } }

相關推薦

js 實現 Base64 編碼相互轉換

function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; //

JS實現Base64編碼解碼,帶16進制顯示

ech encode break 復制代碼 bre zab idt pts image 代碼如下: <!DOCTYPE html> <html> <head> <meta name="viewport" conte

java的圖片和Base64編碼相互轉換

1 需要匯入的jar包:sun.misc.BASE64Decoder.jar 2 圖片轉換為base64編碼: /** * 將圖片轉換成Base64編碼 * * @param imgFile * 待處理圖片 * @return

PHP實現Unicode和Utf-8編碼相互轉換

Unicode和Utf-8編碼的區別 Unicode是一個字符集,定義了字元與數字之間的對應關係,在Unicode中:漢字“字”對應的數字是23383(十進位制),十六進位制表示為5B57。在Unicode中,我們有很多方式將數字23383表示成程式中的資料,包括:UT

js blob流和base64,以及file和base64相互轉換

js blob流和base64,以及file和base64的相互轉換 file和base64 1.file檔案轉換為bas

JAVA實現Base64編碼的三種方式

ack ons static nts bstr clas [] ram trace 摘要: Javabase64編碼的三種方式 有如下三種方式: 方式一:commons-codec.jar Java代碼 1. String base64String="whuang12

用javascript實現base64編碼

應用 ges 標準 asd 富文本 隨著 不同 none fail 前面的話   base-64作為常見的編碼函數,在基本認證、摘要認證以及一些HTTP擴展中得到了大量應用。在前端領域,也常常把圖片轉換為base-64編碼在網絡中傳輸。本文將詳細介紹base64的原理及用j

guid與Base64編碼互相轉換

urn idc blog ati get ret cat 位長 str guid的長度比較長,本文提供一種方法,將guid轉為base64字符串,只有22位長度,比較好! 參考:https://blog.csdn.net/tgghfbflishuai/article/de

js將圖片轉為base64編碼 && jsbase64編碼圖片轉為Blob格式

將圖片轉為base64編碼格式 function convertImgToBase64(url, callback, outputFormat){ var canvas = document.createElement('CANVAS'), ctx = canvas.ge

jsbase64編碼的字串進行 編碼和 解碼

//1.加密解密方法使用: //1.加密 var str = '124中文內容'; var base = new Base64(); var result = base.encode(str); //document.write(result); //2.解密 var result2

自己用 python 實現 base64 編碼

自己用 python 實現 base64 編碼 base64 編碼原理 二進位制檔案中包含有很多無法顯示和列印的字元,二進位制的資料一般以 ASCII 碼形式(8 bit,即一個位元組)儲存,8 bit 可以表示 128 個不同的編碼,而 ASCII 碼中有 33 個編碼表示的不是顯示或列印的字元:

GDI+實現的圖片相互轉換程式,可以通過命令列引數來呼叫

#include <gdiplus.h> #include <stdio.h> using namespace Gdiplus; #include "stdafx.h" #pragma comment(lib, "gdiplus.lib") //探測PNG編碼器的

php utf8編碼和gbk編碼相互轉換

1.utf8轉換為gbk header("Content-type:text/html;charset=UTF-8"); echo $str= 'utf8轉gbk!'; echo '<br />'; echo iconv("UTF-8

自定義元件封裝之-如何使用SwfityJSON實現JSON/Model相互轉換

最近在學習Swift的各種框架,在我的另一篇Swift框架學習之-資料解析SwiftyJSON,已經介紹過了如何使用SwfityJSON這個牛逼的純Swift寫的框架,這裡就不作過多介紹,主要來說說我在SwiftyJSON基礎之上封裝的一個Swift

JS實現將數字金額轉換為大寫人民幣漢字的方法

function convertCurrency(money) { //漢字的數字 var cnNums = new Array('零', '壹', '貳', '叄', '肆', '伍', '陸', '柒', '捌', '玖'); //基本單位 var cnIntRadice = n

python numpy陣列和one-hot編碼相互轉換

import numpy as np from keras.utils import to_categorical data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 7] data

在react中 實現 base64的圖片轉換成formdata格式並實現上傳功能

如果不想要服務端實現處理base64格式的圖片的轉換,那麼在瀏覽器端來實現,部分屬於虛擬碼,僅作為開發參考,請勿直接拷貝使用

js獲取base64編碼 和檔名

// 圖片上傳 $('#file').change(function (){ var filename=this.files['0']['name'];//檔名 //切割 獲取檔名 arr=this.files['0']['name']

用python實現base64編碼與解碼

用到了python裡的base64模組 用法: 編碼: 1 import base64 2 a = 'HC'.decode() #將‘HC’轉為二進位制 3 b = base64.b64encode(a) #將a轉為base64編碼 4 b.decode() #從二進位制轉回 5 6 base6

js byte[] 和string 相互轉換 UTF-8

function stringToByte(str) { var bytes = new Array(); var len, c; len = str.length; for(var i = 0; i < len; i++) { c = str.charCode