JavaScript base64转化

  • Post author:
  • Post category:java


/*把一个汉字转化成base64编码的过程:

1.把汉字转化成16进制

2.把16进制转化成2进制

3.把3个8=24位的二进制变成 4个6的二进制

4.把2进制转化成10进制

5.根据Base64编码表转化成base64编码*/

let base64core = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’;

base64core += base64core.toLowerCase();

base64core += ‘0123456789’;

base64core += ‘+/’;

function toBase64(text) {


let s2s = […Buffer.from(text).values()].map(value => value.toString(2).padStart(8, ‘0’))

console.log(‘–s2s–>’,s2s)

s2s = s2s.join(”)

const s2List = s2s.match(/(\d{6})|(\d+)/g).map(s2 => s2.padEnd(6, ‘0’))

console.log(‘–s2List–>’,s2List)

const s10List = s2List.map(s2 => parseInt(s2, 2))

console.log(s10List)

const base64 = s10List.map(s10 => base64core[s10]).join(”)

return base64 + (‘=’.repeat((4 – base64.length % 4) % 4))

}

console.log(toBase64(‘你好’))

console.log(‘==================================================’)

function base64ToStr(text) {


text = text.replace(/=+/,”);

const s2s = […text].map(t=>base64core.indexOf(t).toString(2).padStart(6, ‘0’)).join(”)

const s2List = s2s.match(/(\d{8})|(\d+)/g).map(s2 =>s2.padStart(8, ‘0’))

console.log(decodeURIComponent(‘%’+s2List.map(s2=>parseInt( s2,2).toString(16)).join(‘%’)))

}

base64ToStr(‘5L2g5aW9’)



版权声明:本文为qq_15038747原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。