UNPKG

1.68 kBJavaScriptView Raw
1const {Base64} = require("./base64");
2
3
4/* Convert a byte to string */
5function byte2hexStr(byte) {
6 var hexByteMap = "0123456789ABCDEF";
7 var str = "";
8 str += hexByteMap.charAt(byte >> 4);
9 str += hexByteMap.charAt(byte & 0x0f);
10 return str;
11}
12
13/**
14 * Converts a byte array to string
15 *
16 * @param {Uint8Array} arr byte array
17 * @returns {string}
18 */
19function bytesToString(arr) {
20 if (typeof arr === 'string') {
21 return arr;
22 }
23 let str = '',
24 _arr = arr;
25 for (let i = 0; i < _arr.length; i++) {
26 let one = _arr[i].toString(2), v = one.match(/^1+?(?=0)/);
27 if (v && one.length === 8) {
28 let bytesLength = v[0].length;
29 let store = _arr[i].toString(2).slice(7 - bytesLength);
30 for (let st = 1; st < bytesLength; st++) {
31 store += _arr[st + i].toString(2).slice(2);
32 }
33 str += String.fromCharCode(parseInt(store, 2));
34 i += bytesLength - 1;
35 } else {
36 str += String.fromCharCode(_arr[i]);
37 }
38 }
39 return str;
40}
41
42/**
43 * Converts a hex string to a decoded string
44 *
45 * @param {string} hex
46 * @returns {string}
47 */
48function hextoString(hex) {
49 let arr = hex.split("");
50 let out = "";
51 for (let i = 0; i < arr.length / 2; i++) {
52 let tmp = "0x" + arr[i * 2] + arr[i * 2 + 1];
53 out += String.fromCharCode(tmp);
54 }
55 return out;
56}
57
58function base64DecodeFromString(string64) {
59 return new Base64().decodeToByteArray(string64);
60}
61
62
63function byteArray2hexStr(byteArray) {
64 let str = "";
65 for (let i = 0; i < (byteArray.length); i++) {
66 str += byte2hexStr(byteArray[i]);
67 }
68 return str;
69}
70
71
72module.exports = {
73 byteArray2hexStr,
74 hextoString,
75 base64DecodeFromString,
76 bytesToString,
77 byte2hexStr
78};