Base64的js 实现
2022/2/23 23:24:59
本文主要是介绍Base64的js 实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Base64 就是将字符串变成 以 A~Z a~z 1234567890 +/ 共64个字符 进行编码
1. 将需要编码的字符串变成二进制
- 1个字符 = 1个字节 = 8位二进制数 而 2的8次方= 64 刚好对应64个字符
2. 按每6位截取上一步中获取的二进制字符串 末尾不足6位的补0
3. 返回对应的base64编码
实现代码
function getBase64Code(){ // 获取 base64 编码集 A到Z a到z 0到9 再加上 +/ const AZ = new Array(26).fill(65).map((item, index) => { return String.fromCodePoint(item + index); // 返回 大写字母 A 到 Z //65 是 A 的 unicode 编码 // fromCodePoint()函数 将unicode编码变成 字符 }).join(''); const az = new Array(26).fill(97).map((item, index) => { return String.fromCodePoint(item + index); }).join(''); // 返回 a 到 z return AZ + az + '0123456789+/'; // ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 共64个字符 } function toBase64(str = '') { let base64Code = getBase64Code(); let enCode = ''; let buWeiDengHao = ''; // 将每一个字符先变为 UniCode 编码(数字) 再使用 toString 返回其数字的二进制字符串; let code = str.split('').reduce((prev, cur) => { let oneWord = cur.charCodeAt().toString(2); oneWord = oneWord.padStart(8, '0'); // 在base64中 一个字符 = 1个字节 = 8位 所以这里以0 补位 补足8位 // 2的8次方刚好是64 所以能够和base64编码 一一对应 return prev + oneWord; }, ''); let item = ''; for(let i = 0; i < code.length; i += 6){ // 以6位的方式截取这个二进制字符串 // console.log(i, i + 6); item = code.slice(i, i + 6); if(item.length < 6){ // 不足6位的需要补位 8 和 6 的最大公约数 是 2 则 只会存在 补 2位 和 补4位的情况 if(item.length === 2){ // item += '0000'; buWeiDengHao += '=='; // 补4位 要在结尾加2个等号 } if(item.length === 4){ item += '00'; buWeiDengHao += '='; // 补2位 要在结尾加1个等号 } } enCode += base64Code[parseInt(item, 2)]; // 二进制字符串变成变成10进制 获取数字的索引 // 不足6位时 需要补位 } return enCode + buWeiDengHao; } console.log(toBase64('ajksldjslfdg8490568945806()'));
这篇关于Base64的js 实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程