2016-09-12 5 views
5

Нужно преобразовать строку Base64 в шестнадцатеричный с javascript.Декодирование Base64 до шестнадцатеричной строки с javascript

Пример:

var base64Value = "oAAABTUAAg==" 

метод преобразования Необходимость

Output (Декодированные данные (шестнадцатеричный)) A0000005350002

Я знаю, что это правильно, потому что я могу использовать этот веб-сайт http://tomeko.net/online_tools/base64.php?lang=en

и пробой в Base64 строку oAAABTUAAg== и получить A0000005350002

Что я пробовал?

https://github.com/carlo/jquery-base64
https://jsfiddle.net/gabrieleromanato/qaght/

Я нашел много вопросов

ответ

5

atob(), то charCodeAt) даст вам (двоичный & ToString (16) даст вам шестигранник.

function base64toHEX(base64) { 
 

 
    var raw = atob(base64); 
 

 
    var HEX = ''; 
 

 
    for (i = 0; i < raw.length; i++) { 
 

 
    var _hex = raw.charCodeAt(i).toString(16) 
 

 
    HEX += (_hex.length==2?_hex:'0'+_hex); 
 

 
    } 
 
    return HEX.toUpperCase(); 
 

 
} 
 

 
console.log(base64toHEX("oAAABTUAAg=="));

+0

Вот один лайнер реверс с помощью ES6: hexToB64 = шестигранной => btoa (String.fromCharCode (... Array.apply (NULL, Array (гекс .length/2)). map ((_, i) => parseInt (hex [i * 2] + hex [i * 2 + 1], 16)))) – SlimSim

5

Предполагая, что вы хотите шестнадцатеричное представление в виде строки, window.atob function (доступна в большинстве современных браузеров) это ваш первый шаг - это будет конвертировать строку base64 к ASCII-строки, где каждый символ представляет собой один байт.

На этом этапе вы разбиваете строку, захватываете код символа каждого символа, затем конвертируете в в строку с базовым 16-мя левыми прокладками.

function base64ToBase16(base64) { 
 
    return window.atob(base64) 
 
     .split('') 
 
     .map(function (aChar) { 
 
     return ('0' + aChar.charCodeAt(0).toString(16)).slice(-2); 
 
     }) 
 
    .join('') 
 
    .toUpperCase(); // Per your example output 
 
} 
 

 
console.log(base64ToBase16("oAAABTUAAg==")); // "A0000005350002"

(Or try it on JSBin)

Смежные вопросы