js 16进制转base64
时间: 2024-09-06 21:07:35 浏览: 88
BASE64编码转换工具
在JavaScript中,将16进制字符串转换为Base64编码可以通过一系列步骤完成。首先,你需要将16进制字符串转换为字节表示,然后使用Buffer(在Node.js中)或TextEncoder(在浏览器中)将这些字节转换为Base64格式。以下是一个转换的示例方法:
```javascript
// 假设有一个16进制字符串
var hexString = '48656c6c6f'; // 对应于'Hello'
// 将16进制字符串转换为字节数组
function hexStringToByteArray(hexString) {
var bytes = [];
for (var c = 0; c < hexString.length; c += 2) {
bytes.push(parseInt(hexString.substr(c, 2), 16));
}
return bytes;
}
// 将字节数组转换为Base64字符串
function byteArrayToBase64(byteArray) {
var base64String = '';
for (var i = 0; i < byteArray.length; i++) {
var chunk = byteArray[i].toString(2); // 将每个字节转换为二进制字符串
chunk = (chunk.length < 8) ? chunk.padStart(8, '0') : chunk; // 确保二进制字符串长度为8
base64String += chunk.match(/.{1,6}/g).join('='); // 将每6位二进制转换为Base64的一个字符
}
return base64String;
}
// 示例:将16进制字符串转换为Base64
var base64 = byteArrayToBase64(hexStringToByteArray(hexString));
console.log(base64); // 输出Base64编码
```
请注意,上述方法没有使用外部库,完全依赖JavaScript的内置功能实现。如果你在使用现代的浏览器,也可以使用`TextEncoder`来简化这个过程:
```javascript
function hexStringToBase64(hexString) {
var buffer = new Uint8Array(hexString.match(/[\da-f]{2}/gi).map(function (h) {
return parseInt(h, 16);
}));
var encoder = new TextEncoder();
var base64 = encoder.encode(buffer).reduce((data, byte) => {
data.push(String.fromCharCode(byte));
return data;
}, []).join('');
return btoa(base64); // 再次将转换后的字符串进行Base64编码
}
var base64 = hexStringToBase64(hexString);
console.log(base64); // 输出Base64编码
```
阅读全文