Search code examples
javascriptdecodeencode

From Base64 to Object and vice versa


I want to encrypt a Javascript object to Base64 but using a key to decrypt it. This is possible, right?

I tried this but it's for strings only and don't uses a key:

function utf8_to_b64(str) {
  return window.btoa(unescape(encodeURIComponent(str)));
}

function b64_to_utf8(str) {
  return decodeURIComponent(escape(window.atob(str)));
}

Solution

  • I found an answer:

    const json = JSON;
    
    function object_to_base64(data, key)
    {
        if(data === "object")
        {
            var object_secure = {data: data, key: key};
            
            var object_json = json.stringify(data_secure);
    
            return btoa(unescape(encodeURIComponent(object_json));
        }
    }
    
    function base64_to_object(data, key)
    {
        if(data === "string")
        {
            var object_secure = decodeURIComponent(escape(atob(data)));
    
            var object_json = json.parse(object_secure);
    
            var object_data = object_json.data;
    
            var object_key = object_json.key;
    
            if(key == object_key)
            {
                return object_data
            }
        }
    }