2016-09-12 30 views
5

Cần chuyển đổi chuỗi Base64 thành Hệ thập lục phân bằng javascript.Giải mã Base64 thành chuỗi thập lục phân với javascript

Ví dụ:

var base64Value = "oAAABTUAAg==" 

phương pháp Cần chuyển đổi

Output (dữ liệu được giải mã (hệ thập lục phân)) A0000005350002

Tôi biết điều này là đúng bởi vì tôi có thể sử dụng trang web này http://tomeko.net/online_tools/base64.php?lang=en

và cú đấm trong chuỗi Base64 của oAAABTUAAg== và nhận A0000005350002

Tôi đã thử gì?

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

Tôi đã tìm thấy rất nhiều câu hỏi

Trả lời

5

atob() sau đó charCodeAt() sẽ cung cấp cho bạn nhị phân & toString (16) sẽ cung cấp cho bạn hex.

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

Dưới đây là một lót để đảo ngược sử dụng es6: hexToB64 = hex => btoa (String.fromCharCode (... Array.apply (null, Array (hex .length/2)) Bản đồ ((_, i) => parseInt (hex [i * 2] + hex [i * 2 + 1], 16))))) – SlimSim

5

Giả sử bạn muốn các đại diện thập lục phân là một chuỗi, window.atob function (có sẵn trong hầu hết các trình duyệt hiện đại) là bước đầu tiên của bạn - nó sẽ chuyển đổi chuỗi base64 của bạn đến một chuỗi ASCII, trong đó mỗi ký tự đại diện cho một byte.

Tại thời điểm này, bạn chia chuỗi, lấy mã ký tự của từng ký tự, sau đó chuyển đổi thành chuỗi cơ sở 16 bên trái.

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)

Các vấn đề liên quan