1、字符串转换为字节数组
// 字符串转为字节数组
function stringToByteArray(str) {
var array = new Uint8Array(str.length);
for (var i = 0; i < str.length; i++) {
array[i] = str.charCodeAt(i);
}
return array;
}
2、16进制转换为base64
// 16进制转换为base64
function HexToBase64(sha1) {
var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
var base64_rep = ""
var ascv
var bit_arr = 0
var bit_num = 0
for (var n = 0; n < sha1.length; ++n) {
if (sha1[n] >= 'A' && sha1[n] <= 'Z') {
ascv = sha1.charCodeAt(n) - 55
} else if (sha1[n] >= 'a' && sha1[n] <= 'z') {
ascv = sha1.charCodeAt(n) - 87
} else {
ascv = sha1.charCodeAt(n) - 48
}
bit_arr = (bit_arr << 4) | ascv
bit_num += 4
if (bit_num >= 6) {
bit_num -= 6
base64_rep += digits[bit_arr >>> bit_num]
bit_arr &= ~ (-1 << bit_num)
}
}
if (bit_num > 0) {
bit_arr <<= 6 - bit_num
base64_rep += digits[bit_arr]
}
var padding = base64_rep.length % 4
if (padding > 0) {
for (var n = 0; n < 4 - padding; ++n) {
base64_rep += "="
}
}
return base64_rep
}
3、base64转换为字符串数组
https://www.npmjs.com/package/base64-arraybuffer
const base64ToArrayBuffer = require('base64-arraybuffer')
// base64转换为字符串数组
export function base64ToArrayBufferFn(base64) {
return base64ToArrayBuffer.decode(base64)
}
4、base64转换为16进制(微信小程序)
// base64转为16进制
function base64ToHex(base64Str) {
const binaryStr = weAtob(base64Str);
// 创建一个Uint8Array来存储二进制数据
const uint8Array = new Uint8Array(binaryStr.length);
for (let i = 0; i < binaryStr.length; i++) {
uint8Array[i] = binaryStr.charCodeAt(i);
}
// 使用toString方法将二进制数据转换为十六进制[字符串]
let hexStr = ''
for (let i = 0; i < uint8Array.length; i++) {
const hex = uint8Array[i].toString(16).padStart(2, '0');
hexStr += hex;
}
return hexStr;
}
5、base64转换为16进制(非小程序)
// base64转为16进制
function base64ToHex(base64Str) {
const binaryStr = atob(base64Str);
// 创建一个Uint8Array来存储二进制数据
const uint8Array = new Uint8Array(binaryStr.length);
for (let i = 0; i < binaryStr.length; i++) {
uint8Array[i] = binaryStr.charCodeAt(i);
}
// 使用toString方法将二进制数据转换为十六进制[字符串]
let hexStr = ''
for (let i = 0; i < uint8Array.length; i++) {
const hex = uint8Array[i].toString(16).padStart(2, '0');
hexStr += hex;
}
return hexStr;
}