base64编码

base64编码

base64编码表
这里写图片描述
组成:大些字母(26)+ 小写字母(26)+ 数字(10) + “+”(1) + “/”(1)

Base64编码说明
 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),
之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,需要用0填充。如果全部用0填充,输出字符使用’=’,如果部分填充,填充在后面,因此编码后输出的文本末尾可能会出现1或2个’=’。
btoa(str) //64位转码

binary to ascii

atob(enstr) // 64位解码

ascii to binary

base64编码实现

function getbcode(enstr) {
  let charcodes = []
  let encharcodes = [];
  var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  for(let str of enstr) {
    let code = str.charCodeAt(0).toString(2);
    code = code.padStart(8, '0');
    charcodes.push(code);
  }
  strcharcodes = charcodes.join('');
  if(strcharcodes.length % 24 != 0) {
    let main = Math.floor(strcharcodes.length / 24);
    strcharcodes = strcharcodes.padEnd((main + 1) * 24, '0');
  } 
  for(let i=0, len = strcharcodes.length/6; i < len; i++) {
    let start = i * 6;
    let code = parseInt('00' + strcharcodes.substr(start, 6) , 2);
    if(code == 0) {
      encharcodes.push('=');  
    } else {
      encharcodes.push(A[code]);
    }
  }
  console.log(encharcodes.join(''));
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值