Base85 or Ascii85 Javascript Bookmarklets
Friday, April 15, 2011 7:55:26 AM
Base85 or Ascii85 Bookmarklets
see: http://en.wikipedia.org/wiki/Ascii85
heres my bookmarklets encoded in base64... ironic don't you think ;-)
Anyway the code used is essentially copied, the only difficult part was debugging an integer operation...
if you look at the b85 encoding code you'll find a "n%parseint(85)" where normally "n%85" would be sufficient.
I suppose you could declare another var but who cares.
Due to a problem of handling &# codes (I dont know how to do it, maybe someone can help?) I had to resort to using a pop-up window for the decode_ascii85 bookmarklet, so it won't work if you've got your pop-ups switched off... duhh! ;-)
Have fun!
heres the decode_Ascii85 bookmarklet source:
amF2YXNjcmlwdDooZnVuY3Rpb24oKXtqYXZhc2NyaXB0OmZ1bmN0aW9uIGRlY29kZShzdHIpe2lu
cHV0PXN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoJzx+JywnZ2knKSwnJyk7aW5wdXQ9aW5wdXQucmVw
bGFjZShuZXcgUmVnRXhwKCd+PicsJ2dpJyksJycpO2lucHV0PWlucHV0LnJlcGxhY2UoL1xzL2cs
JycpO3ZhciBuPWlucHV0Lmxlbmd0aCxyPVtdLGI9WzAsMCwwLDAsMF0saSxqLHQseCx5LGQ7Zm9y
KGk9MDtpPG47KytpKXtpZihpbnB1dC5jaGFyQXQoaSk9PSJ6Iil7ci5wdXNoKDAsMCwwLDApO2Nv
bnRpbnVlO31mb3Ioaj0wO2o8NTsrK2ope2Jbal09aW5wdXQuY2hhckNvZGVBdChpK2opLTMzO31k
PW4taTtpZihkPDUpe2ZvcihqPWQ7ajw0O2JbKytqXT0wKTtiW2RdPTg1O310PSgoKGJbMF0qODUr
YlsxXSkqODUrYlsyXSkqODUrYlszXSkqODUrYls0XTt4PXQmMjU1O3Q+Pj49ODt5PXQmMjU1O3Q+
Pj49ODtyLnB1c2godD4+PjgsdCYyNTUseSx4KTtmb3Ioaj1kO2o8NTsrK2osci5wb3AoKSk7aSs9
NDt9bXNnV2luZG93PXdpbmRvdy5vcGVuKCIiLCIiLCJsb2NhdGlvbj15ZXMsc3RhdHVzPXllcyxt
ZW51YmFyPXllcyxzY3JvbGxiYXJzPXllcyxyZXNpemFibGU9eWVzLHdpZHRoPTMwMCxoZWlnaHQ9
NTAiKTttc2dXaW5kb3cuZG9jdW1lbnQud3JpdGUoJyYjJytyLmpvaW4oJyYjJykpO307dmFyIHN0
cj1kb2N1bWVudC5zZWxlY3Rpb24/ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkudGV4
dDp3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTtpZighc3RyKXN0cj1wcm9tcHQoImlu
cHV0IGFzY2lpODUgc3RyaW5nIHZhbHVlIHlvdSB3YW50IHRvIGRlY29kZToiLCc8K291ZStER180
RmBcYT9GIScpO2lmKHN0ciE9bnVsbClkZWNvZGUoc3RyKTt9KSgp
heres the encode_Ascii85 bookmarklet source code:
amF2YXNjcmlwdDooZnVuY3Rpb24oKXtmdW5jdGlvbiBzdHIyYXNjaWkoc3RyKXt2YXIgYXNjaWlh
cnk9W107az0wO2ZvcihrPTA7azw9c3RyLmxlbmd0aC0xO2srKyl7YXNjaWlhcnkucHVzaChzdHIu
Y2hhckNvZGVBdChrKSk7fXJldHVybiBhc2NpaWFyeTt9ZnVuY3Rpb24gY291bnQoaW5wdXQsbGVu
Z3RoLHJlc3VsdCl7dmFyIGksaixuLGI9WzAsMCwwLDAsMF07Zm9yKGk9MDtpPGxlbmd0aDtpKz00
KXtuPSgoaW5wdXRbaV0qMjU2K2lucHV0W2krMV0pKjI1NitpbnB1dFtpKzJdKSoyNTYraW5wdXRb
aSszXTtpZighbil7cmVzdWx0LnB1c2goInoiKTt9ZWxzZXtmb3Ioaj0wO2o8NTtiW2orK109biVw
YXJzZUludCg4NSkrMzMsbj1NYXRoLmZsb29yKG4vODUpKTt9cmVzdWx0LnB1c2goU3RyaW5nLmZy
b21DaGFyQ29kZShiWzRdLGJbM10sYlsyXSxiWzFdLGJbMF0pKTt9fWZ1bmN0aW9uIGVuY29kZShp
bnB1dCl7dmFyIHJlc3VsdD1bXTt2YXIgcmVtaW5kZXI9aW5wdXQubGVuZ3RoJTQ7dmFyIGxlbmd0
aD1pbnB1dC5sZW5ndGgtcmVtaW5kZXI7Y291bnQoaW5wdXQsbGVuZ3RoLHJlc3VsdCk7aWYocmVt
aW5kZXIpe3ZhciB0PWlucHV0LnNsaWNlKGxlbmd0aCk7d2hpbGUodC5sZW5ndGg8NCl7dC5wdXNo
KDApO31jb3VudCh0LDQscmVzdWx0KTt2YXIgeD1yZXN1bHQucG9wKCk7aWYoeD09InoiKXt4PSIh
ISEhISI7fXJlc3VsdC5wdXNoKHguc3Vic3RyKDAscmVtaW5kZXIrMSkpO31yZXR1cm4gcmVzdWx0
LmpvaW4oIiIpO312YXIgc3RyPWRvY3VtZW50LnNlbGVjdGlvbj9kb2N1bWVudC5zZWxlY3Rpb24u
Y3JlYXRlUmFuZ2UoKS50ZXh0OndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpO2lmKCFz
dHIpc3RyPXByb21wdCgiaW5wdXQgYXNjaWkgc3RyaW5nIHZhbHVlIHlvdSB3YW50IHRvIEVuY29k
ZSB0byBBc2NpaTg1OiIsJ3Bhc3N3b3JkJyk7aWYoc3RyIT1udWxsKWFsZXJ0KGVuY29kZShzdHIy
YXNjaWkoc3RyKSkpO30pKCk=
Heres a copy of some code to test:
<~9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4Gp$d7F!,L7@<6@)/0JDEF<G%<+EV:2F!,
O<DJ+*.@<*K0@<6L(Df-\0Ec5e;DffZ(EZee.Bl.9pF"AGXBPCsi+DGm>@3BB/F*&OCAfu2/AKY
i(DIb:@FD,*)+C]U=@3BN#EcYf8ATD3s@q?d$AftVqCh[NqF<G:8+EV:.+Cf>-FD5W8ARlolDIa
l(DId<j@<?3r@:F%a+D58'ATD4$Bl@l3De:,-DJs`8ARoFb/0JMK@qB4^F!,R<AKZ&-DfTqBG%G
>uD.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c~>
I'm using opera : Version 11.01
Build : 1190
Platform : Win32
System : Windows XP
and it seems to work ok... copyleft
see: http://en.wikipedia.org/wiki/Ascii85
heres my bookmarklets encoded in base64... ironic don't you think ;-)
Anyway the code used is essentially copied, the only difficult part was debugging an integer operation...
if you look at the b85 encoding code you'll find a "n%parseint(85)" where normally "n%85" would be sufficient.
I suppose you could declare another var but who cares.
Due to a problem of handling &# codes (I dont know how to do it, maybe someone can help?) I had to resort to using a pop-up window for the decode_ascii85 bookmarklet, so it won't work if you've got your pop-ups switched off... duhh! ;-)
Have fun!
heres the decode_Ascii85 bookmarklet source:
amF2YXNjcmlwdDooZnVuY3Rpb24oKXtqYXZhc2NyaXB0OmZ1bmN0aW9uIGRlY29kZShzdHIpe2lu
cHV0PXN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoJzx+JywnZ2knKSwnJyk7aW5wdXQ9aW5wdXQucmVw
bGFjZShuZXcgUmVnRXhwKCd+PicsJ2dpJyksJycpO2lucHV0PWlucHV0LnJlcGxhY2UoL1xzL2cs
JycpO3ZhciBuPWlucHV0Lmxlbmd0aCxyPVtdLGI9WzAsMCwwLDAsMF0saSxqLHQseCx5LGQ7Zm9y
KGk9MDtpPG47KytpKXtpZihpbnB1dC5jaGFyQXQoaSk9PSJ6Iil7ci5wdXNoKDAsMCwwLDApO2Nv
bnRpbnVlO31mb3Ioaj0wO2o8NTsrK2ope2Jbal09aW5wdXQuY2hhckNvZGVBdChpK2opLTMzO31k
PW4taTtpZihkPDUpe2ZvcihqPWQ7ajw0O2JbKytqXT0wKTtiW2RdPTg1O310PSgoKGJbMF0qODUr
YlsxXSkqODUrYlsyXSkqODUrYlszXSkqODUrYls0XTt4PXQmMjU1O3Q+Pj49ODt5PXQmMjU1O3Q+
Pj49ODtyLnB1c2godD4+PjgsdCYyNTUseSx4KTtmb3Ioaj1kO2o8NTsrK2osci5wb3AoKSk7aSs9
NDt9bXNnV2luZG93PXdpbmRvdy5vcGVuKCIiLCIiLCJsb2NhdGlvbj15ZXMsc3RhdHVzPXllcyxt
ZW51YmFyPXllcyxzY3JvbGxiYXJzPXllcyxyZXNpemFibGU9eWVzLHdpZHRoPTMwMCxoZWlnaHQ9
NTAiKTttc2dXaW5kb3cuZG9jdW1lbnQud3JpdGUoJyYjJytyLmpvaW4oJyYjJykpO307dmFyIHN0
cj1kb2N1bWVudC5zZWxlY3Rpb24/ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkudGV4
dDp3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTtpZighc3RyKXN0cj1wcm9tcHQoImlu
cHV0IGFzY2lpODUgc3RyaW5nIHZhbHVlIHlvdSB3YW50IHRvIGRlY29kZToiLCc8K291ZStER180
RmBcYT9GIScpO2lmKHN0ciE9bnVsbClkZWNvZGUoc3RyKTt9KSgp
heres the encode_Ascii85 bookmarklet source code:
amF2YXNjcmlwdDooZnVuY3Rpb24oKXtmdW5jdGlvbiBzdHIyYXNjaWkoc3RyKXt2YXIgYXNjaWlh
cnk9W107az0wO2ZvcihrPTA7azw9c3RyLmxlbmd0aC0xO2srKyl7YXNjaWlhcnkucHVzaChzdHIu
Y2hhckNvZGVBdChrKSk7fXJldHVybiBhc2NpaWFyeTt9ZnVuY3Rpb24gY291bnQoaW5wdXQsbGVu
Z3RoLHJlc3VsdCl7dmFyIGksaixuLGI9WzAsMCwwLDAsMF07Zm9yKGk9MDtpPGxlbmd0aDtpKz00
KXtuPSgoaW5wdXRbaV0qMjU2K2lucHV0W2krMV0pKjI1NitpbnB1dFtpKzJdKSoyNTYraW5wdXRb
aSszXTtpZighbil7cmVzdWx0LnB1c2goInoiKTt9ZWxzZXtmb3Ioaj0wO2o8NTtiW2orK109biVw
YXJzZUludCg4NSkrMzMsbj1NYXRoLmZsb29yKG4vODUpKTt9cmVzdWx0LnB1c2goU3RyaW5nLmZy
b21DaGFyQ29kZShiWzRdLGJbM10sYlsyXSxiWzFdLGJbMF0pKTt9fWZ1bmN0aW9uIGVuY29kZShp
bnB1dCl7dmFyIHJlc3VsdD1bXTt2YXIgcmVtaW5kZXI9aW5wdXQubGVuZ3RoJTQ7dmFyIGxlbmd0
aD1pbnB1dC5sZW5ndGgtcmVtaW5kZXI7Y291bnQoaW5wdXQsbGVuZ3RoLHJlc3VsdCk7aWYocmVt
aW5kZXIpe3ZhciB0PWlucHV0LnNsaWNlKGxlbmd0aCk7d2hpbGUodC5sZW5ndGg8NCl7dC5wdXNo
KDApO31jb3VudCh0LDQscmVzdWx0KTt2YXIgeD1yZXN1bHQucG9wKCk7aWYoeD09InoiKXt4PSIh
ISEhISI7fXJlc3VsdC5wdXNoKHguc3Vic3RyKDAscmVtaW5kZXIrMSkpO31yZXR1cm4gcmVzdWx0
LmpvaW4oIiIpO312YXIgc3RyPWRvY3VtZW50LnNlbGVjdGlvbj9kb2N1bWVudC5zZWxlY3Rpb24u
Y3JlYXRlUmFuZ2UoKS50ZXh0OndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpO2lmKCFz
dHIpc3RyPXByb21wdCgiaW5wdXQgYXNjaWkgc3RyaW5nIHZhbHVlIHlvdSB3YW50IHRvIEVuY29k
ZSB0byBBc2NpaTg1OiIsJ3Bhc3N3b3JkJyk7aWYoc3RyIT1udWxsKWFsZXJ0KGVuY29kZShzdHIy
YXNjaWkoc3RyKSkpO30pKCk=
Heres a copy of some code to test:
<~9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4Gp$d7F!,L7@<6@)/0JDEF<G%<+EV:2F!,
O<DJ+*.@<*K0@<6L(Df-\0Ec5e;DffZ(EZee.Bl.9pF"AGXBPCsi+DGm>@3BB/F*&OCAfu2/AKY
i(DIb:@FD,*)+C]U=@3BN#EcYf8ATD3s@q?d$AftVqCh[NqF<G:8+EV:.+Cf>-FD5W8ARlolDIa
l(DId<j@<?3r@:F%a+D58'ATD4$Bl@l3De:,-DJs`8ARoFb/0JMK@qB4^F!,R<AKZ&-DfTqBG%G
>uD.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c~>
I'm using opera : Version 11.01
Build : 1190
Platform : Win32
System : Windows XP
and it seems to work ok... copyleft









MoonmanMo0nman # Tuesday, April 26, 2011 10:22:26 AM
as always decode the text from base 64 to get the Bookmarklet javascript source code:
amF2YXNjcmlwdDooZnVuY3Rpb24oKXtqYXZhc2NyaXB0OmZ1bmN0aW9uIGRlY29kZShzdHIpe2lu
cHV0PXN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoJzx+JywnZ2knKSwnJyk7aW5wdXQ9aW5wdXQucmVw
bGFjZShuZXcgUmVnRXhwKCd+PicsJ2dpJyksJycpO2lucHV0PWlucHV0LnJlcGxhY2UoL1xzL2cs
JycpO3ZhciBuPWlucHV0Lmxlbmd0aCxyPVtdLGI9WzAsMCwwLDAsMF0saSxqLHQseCx5LGQ7Zm9y
KGk9MDtpPG47KytpKXtpZihpbnB1dC5jaGFyQXQoaSk9PSJ6Iil7ci5wdXNoKDAsMCwwLDApO2Nv
bnRpbnVlO31mb3Ioaj0wO2o8NTsrK2ope2Jbal09aW5wdXQuY2hhckNvZGVBdChpK2opLTMzO31k
PW4taTtpZihkPDUpe2ZvcihqPWQ7ajw0O2JbKytqXT0wKTtiW2RdPTg1O310PSgoKGJbMF0qODUr
YlsxXSkqODUrYlsyXSkqODUrYlszXSkqODUrYls0XTt4PXQmMjU1O3Q+Pj49ODt5PXQmMjU1O3Q+
Pj49ODtyLnB1c2godD4+PjgsdCYyNTUseSx4KTtmb3Ioaj1kO2o8NTsrK2osci5wb3AoKSk7aSs9
NDt9cmV0dXJuIHA9KCcmIycrci5qb2luKCc7JiMnKSsnOycpO307ZnVuY3Rpb24gSHRtbERlY29k
ZShzKXt2YXIgb3V0PScnO2lmKHM9PW51bGwpe3JldHVybjt9dmFyIGw9cy5sZW5ndGg7Zm9yKHZh
ciBpPTA7aTxsO2krKyl7dmFyIGNoPXMuY2hhckF0KGkpO2lmKGNoPT0nJicpe3ZhciBzZW1pY29s
b25JbmRleD1zLmluZGV4T2YoJzsnLGkrMSk7aWYoc2VtaWNvbG9uSW5kZXg+MCl7dmFyIGVudGl0
eT1zLnN1YnN0cmluZyhpKzEsc2VtaWNvbG9uSW5kZXgpO2lmKGVudGl0eS5sZW5ndGg+MSYmZW50
aXR5LmNoYXJBdCgwKT09JyMnKXtpZihlbnRpdHkuY2hhckF0KDEpPT0neCd8fGVudGl0eS5jaGFy
QXQoMSk9PSdYJyl7Y2g9U3RyaW5nLmZyb21DaGFyQ29kZShldmFsKCcwJytlbnRpdHkuc3Vic3Ry
aW5nKDEpKSk7fWVsc2V7Y2g9U3RyaW5nLmZyb21DaGFyQ29kZShldmFsKGVudGl0eS5zdWJzdHJp
bmcoMSkpKTt9fWVsc2V7c3dpdGNoKGVudGl0eSl7Y2FzZSdxdW90JzpjaD1TdHJpbmcuZnJvbUNo
YXJDb2RlKDB4MDAyMik7YnJlYWs7fX1pPXNlbWljb2xvbkluZGV4O319b3V0Kz1jaDt9cmV0dXJu
IG91dDt9dmFyIHN0cj1kb2N1bWVudC5zZWxlY3Rpb24/ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0
ZVJhbmdlKCkudGV4dDp3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTtpZighc3RyKXN0
cj1wcm9tcHQoImlucHV0IGFzY2lpODUgc3RyaW5nIHZhbHVlIHlvdSB3YW50IHRvIGRlY29kZToi
LCc8K291ZStER180RmBcYT9GIScpO2lmKHN0ciE9bnVsbClhbGVydChzdHIrIlxuXG4iK0h0bWxE
ZWNvZGUoZGVjb2RlKHN0cikpKTt9KSgp