Skip to main content Link Search Menu Expand Document (external link)

Hàm btoa - mã hóa base64

Hàm btoa dùng để mã hóa chuỗi về dạng Base64. Kết quả trả về một chuỗi ASCII.

Cú pháp:

btoa(StringToEndcode)

Để giải mã, ta có thể dùng hàm atob, cú pháp như sau:

atob(encodedData)

Hai hàm này dùng chủ yếu để phục vụ cho code JS hoặc reactJS browser. Trong JS, atob và btoa được biểu diễn như sau:

const encodedData = btoa("Hello, world"); // encode a string
const decodedData = atob(encodedData); // decode the string

Thông thường khi đưa vào code, ta sẽ phải mã hóa base64 trước khi giải mã để tránh lộ chuỗi ký tự ban đầu, hoặc viết tool giải mã. Vậy 2 hàm Twig trên sinh ra để phục vụ cho điều này, ta sẽ viết lại được đoạn code JS trên như sau:

<script>
const decodedData = atob("{{btoa('Hello, world')}}"); // decode the string
</script>

Lúc này, ta ngầm hiểu "Hello, world" đã được mã hóa trên máy chủ, và 1 chuỗi ASCII được gửi về máy khách để thực hiện giải mã base64.

Một biến tấu về atob và btoa trong JS để bạn có thể dùng với tiếng Việt, tuy nhiên, điều này đối với Twig là không cần thiết. Tham khảo:

function _btoa(input) {
    const encoder = new TextEncoder();
    const data = encoder.encode(input);
    return btoa(String.fromCharCode.apply(null, data));
}
function _atob(encodedInput) {
    const decodedData = atob(encodedInput);
    const decoder = new TextDecoder();
    const decodedString = decoder.decode(
        new Uint8Array(decodedData.split('').map(char => char.charCodeAt(0)))
    );
    return decodedString;
}

Chia sẻ



QRcode
QRcode