导航:首页 > 编程语言 > base64js解码

base64js解码

发布时间:2023-07-19 01:07:46

㈠ 前端js 加密解密方式

一、base64加密
使用JS函数的window.btoa()和 window.atob(),分别是编码和解码

二、编码和解码字符串

使用JS函数的escape()和unescape(),分别是编码和解码

三、AES加密解密
四、RSA加密解密

㈡ 如何在javascript 里面实现和java相同的base64加解密算法

引入base.js类库

varbase64=BASE64.encoder(str);//返回编码后的字回符

varunicode=BASE64.decoder(base64Str);//返回会解码后的unicode码数组。答

http://git.oschina.net/loonhxl/jbase64/blob/master/jbase64.js

㈢ 怎么解决js解码base64中文乱码问题

最近在做一个插件开发,我用c++在插件里面把带中文的字符串用base64算法加密后推给网页的js去解码,解出来的相信大家预料到了,洋文一字不差,中文就TMD的都是乱码。
google了一下,也没找到能解决问题的方法,没办法只好自己研究了。后来发现问题原因了,编码过程肯定是没有问题的,看到前面加颜色那段字了没,就是我解出来的编码虽然是utf8,但是将中文文字进行Base64编码再解码后,重新排列编码的时候,往往就会出现乱码,UTF8页面的编码实际还是用UTF-16存储的。应该在解码后把UTF8还原为UTF-16格式。这样就能真正搞定javascript解密中文base64编码的问题了。
这里我就把js解码代码贴出来,给广大同胞:
/**
* Waitang.com
*/
var base64EncodeChars = "+/";
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);
//base64编码
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;
}
//base64解码
function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = "";
while(i < len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c1 == -1);
if(c1 == -1)
break;
/* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c2 == -1);
if(c2 == -1)
break;
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
/* c3 */
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));
/* c4 */
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;
}

这是转换utf8到utf16的代码:

/**
* Yovae.com
*/
//utf-8转utf16
function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}
//utf-16转utf-8
function utf8to16(str) {
var out, i, len, c;
var char2, char3;
out = "";
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4)
{
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
// 0xxxxxxx
out += str.charAt(i-1);
break;
case 12: case 13:
// 110x xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = str.charCodeAt(i++);
char3 = str.charCodeAt(i++);
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;
}

这是c++ base64编码代码:

/**
* Yovae.com
*/
CString encode(const CString in_str)
{
const CString _base64_encode_chars = "+/";
CString out_str;
unsigned char c1, c2, c3;
int i = 0;
int len = in_str.GetLength();
while ( i {
c1 = in_str[i++];
if ( i==len )
{
out_str += _base64_encode_chars[ c1>>2 ];
out_str += _base64_encode_chars[ (c1&0x3)<<4 ];
out_str += "==";
break;
}
c2 = in_str[i++];
if ( i==len )
{
out_str += _base64_encode_chars[ c1>>2 ];
out_str += _base64_encode_chars[ ((c1&0x3)<<4) | ((c2&0xF0)>>4) ];
out_str += _base64_encode_chars[ (c2&0xF)<<2 ];
out_str += "=";
break;
}

c3 = in_str[i++];
out_str += _base64_encode_chars[ c1>>2 ];
out_str += _base64_encode_chars[ ((c1&0x3)<<4) | ((c2&0xF0)>>4) ];
out_str += _base64_encode_chars[ ((c2&0xF)<<2) | ((c3&0xC0)>>6) ];
out_str += _base64_encode_chars[ c3&0x3F ];
}
return out_str;
}

㈣ javascript可以把base64编码转换成二进制代码吗求示例代码!

function convertBase64UrlToBytes(base64Str) {
var bytes = window.atob(urlData.split(',')[1]);
//处理异抄常,将ascii码小于0的转换为大于0
var ab = new ArrayBuffer(bytes.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i);
}
return ia;
}

㈤ js---将base64的数据转换为文件

/**

* 将base64的数据转换成一个Blob对象

* @param {Object} b64Data base64数据

* @param {Object} contentType 数据类型

* @param {Object} sliceSize 分片大小

*/

function b64toBlob(b64Data, contentType, sliceSize) {

    let b = b64Data.toString();

    b64Data = b.split(',')[1];

    var byteCharacters =atob(b64Data);

    var byteArrays = [];

    for (let offset =0; offset < byteCharacters.length; offset += sliceSize) {

        var slice = byteCharacters.slice(offset, offset + sliceSize);

        var byteNumbers =new Array(slice.length);

        for (let i =0; i < slice.length; i++) {

            byteNumbers[i] = slice.charCodeAt(i);

        }

        var byteArray =new Uint8Array(byteNumbers);

        byteArrays.push(byteArray);

    }

    var blob =new Blob(byteArrays, {type: contentType});

    return blob;

}

/**

* 将Blob对象转换为file对象

* @param {Object} theBlob blob对象

* @param {Object} fileName 文件名称

*/

function blobToFile(theBlob,fileName) {

    theBlob.lastModifiedDate =new Date();

    theBlob.name = fileName;

    return theBlob;

}

// 创建一个reader

let reader =new FileReader();

// 将图片转成 base64 格式

reader.readAsDataURL(file);

/**

* 将base64转换为文件

* @param dataurl base64格式数据

* @param filename 文件名

* @param filetype 文件类型

* @returns {File} 二进制流文件

*/

function dataURLtoFile(dataurl,filename,filetype) {

    var arr = dataurl.split(","),

    bstr =atob(arr[1]),

    n = bstr.length,

    u8arr =new Uint8Array(n);

    while (n--) {

        u8arr[n] = bstr.charCodeAt(n);

    }

    return new File([u8arr], filename, {

        type: filetype

    });

}

㈥ 请教JS和PHP的base64位加密解密的问题

具体代码复如下:
<?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
​PHP 独特的语法混制合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

㈦ js 将图片转换为base64编码

将图片转换为Base64

获取图片Base64编码

方式一:Blob和FileReader 对象
实现原理:
使用xhr请求图片,并设置返回的文件类型为Blob对象[xhr.responseType = "blob"]
使用FileReader 对象接收blob

方式二:canvas.toDataURL()方法
实现原理:
使用canvas.toDataURL()方法
需要解决图片跨域问题 image.crossOrigin = '';
使用了Jquery库的$.Deferred()方法

阅读全文

与base64js解码相关的资料

热点内容
java程序员全攻略下载 浏览:715
网络逆向教程 浏览:135
iso文件如何重装系统 浏览:750
ghost镜像文件路径如何恢复 浏览:832
搭建网站需要多少钱啊 浏览:599
编程猫怎么设置背景亮度 浏览:177
qq文件破损 浏览:414
javapoi配置 浏览:608
编程怎么写数据图案同步 浏览:308
海康监控录像回放丢数据怎么回事 浏览:155
in后缀是什么文件 浏览:142
linuxusb抓包工具 浏览:808
类似美团的app还有什么 浏览:974
asp显示数据库 浏览:142
delphi逆向教程 浏览:63
数据库怎么把表名称和字段导出 浏览:910
桌面上文件变白删不掉 浏览:968
更改项目的jdk版本 浏览:612
瑞丘app哪里下载 浏览:108
电脑怎么设置远程开机密码 浏览:894

友情链接