Search code examples
javascriptjavanode.jsarraybuffer

How to achieve Base64.getDecoder().decode(nonceBase64Encoded) in JavaScript?


I have some code written in java which I want to convert to JavaScript.

String nonceBase64Encoded = "+8GorZIWoF7mnZ2/M86/eA==";    
byte[] decodednoncebytes = Base64.getDecoder().decode(nonceBase64Encoded);

About this decode():

Decodes a Base64 encoded String into a newly-allocated byte arrayusing the Base64 encoding scheme.

An invocation of this method has exactly the same effect as invoking decode(src.getBytes(StandardCharsets.ISO_8859_1))


Solution

  • The atob() function decodes a string of data which has been encoded using Base64 encoding. read more

    example:

    var decodedData = atob(encodedData);
    

    The btoa() method creates a Base64-encoded ASCII string from a binary string (i.e., a String object in which each character in the string is treated as a byte of binary data). read more

    example:

    var encodedData = btoa(stringToEncode);
    

    And if you want to convert strings into array of bytes then TextEncoder can be used:

    new TextEncoder().encode(str)
    

    Alternatively this function could be used:

    function stringToByteArray(s){
    
        // Otherwise, fall back to 7-bit ASCII only
        var result = new Uint8Array(s.length);
        for (var i=0; i<s.length; i++){
            result[i] = s.charCodeAt(i);/* w ww. ja  v  a 2s . co  m*/
        }
        return result;
    }