Ali obstajajo metode v jeziku JavaScript, ki bi jih lahko uporabili za kodiranje in dekodiranje niza z uporabo kodiranja base64?
Nekateri brskalniki, kot so Firefox, Chrome, Safari, Opera in IE10+, znajo nativno obdelati Base64. Oglejte si to vprašanje Stackoverflow. Uporablja funkciji btoa()
in atob()
.
Za strežniški JavaScript je na voljo paket btoa za Node.JS.
Če želite rešitev za različne brskalnike, obstajajo obstoječe knjižnice, kot je CryptoJS, ali koda, kot je npr:
http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html
Pri slednji morate temeljito preizkusiti funkcijo za združljivost z različnimi brskalniki. In napaka je bila že prijavljena.
Kratka in hitra funkcija dekodiranja Base64 JavaScript brez varovala Failsafe:
function decode_base64 (s)
{
var e = {}, i, k, v = [], r = '', w = String.fromCharCode;
var n = [[65, 91], [97, 123], [48, 58], [43, 44], [47, 48]];
for (z in n)
{
for (i = n[z][0]; i < n[z][1]; i++)
{
v.push(w(i));
}
}
for (i = 0; i < 64; i++)
{
e[v[i]] = i;
}
for (i = 0; i < s.length; i+=72)
{
var b = 0, c, x, l = 0, o = s.substring(i, i+72);
for (x = 0; x < o.length; x++)
{
c = e[o.charAt(x)];
b = (b << 6) + c;
l += 6;
while (l >= 8)
{
r += w((b >>> (l -= 8)) % 256);
}
}
}
return r;
}