Categories
Development

Free online tools to work with BASE64, HASH, CRC, HEX, BIN and etc…

When we work with different types of data, it’s always good to have a tool-belt to make our labor easier.  In the age of the “cloud,” it would be good to have all these tools online. Here are some online tools that may help you in your work:
Here are some online tools that may help you in your work:

Coder’s Toolbox

What I love about this is that you don’t need to press any “convert” button; it does everything as you type the input data in. This service allows formatting strings for using as XML, URL, BASE64 and ECMAScript, changing their encodings (optionally) to US_ASCII, ISO-8859-1 or UTF8. Also, you can quickly convert any number between DEC, HEX, OCT and BIN bases. It has some other tools like Time conversion, Network, Bandwidth and XPath.

Quick Hash

This service looks like a real hash monster. It allows you to build a hash from the input string with multiple parameters (though I found that not all the algorithms are implemented yet). They claim that they support the following algorithms: MD5 SHA1 MD5-Crypt(3) ($1$) Base64 MD2 MD4 MD5 SHA1 SHA-256 SHA-384 SHA-512 RIPEMD-128 RIPEMD-160 RIPEMD-256 RIPEMD-320 Whirlpool Tiger-128,3 Tiger-160,3 Tiger-192,3 Tiger-128,4 Tiger-160,4 Tiger-192,4 Snefru-128 GOST Hash ALDER-32 CRC32 CRC32 (b) HAVAL 128,3 HAVAL 160,3 HAVAL 192,3 HAVAL 224,3 HAVAL 256,3 HAVAL 128,4 HAVAL 160,4 HAVAL 192,4 HAVAL 224,4 HAVAL 256,4 HAVAL 128,5 HAVAL 160,5 HAVAL 192,5 HAVAL 224,5 HAVAL 256,5 CAST-128 GOST Block Cipher Rijndael-128 (AES) Twofish ARCFour (ARC4) CAST-256 LOKI97 Rijndael-192 (AES-192) SAFER Plus WAKE Cipher blowfish-compat Standard DES Rijndael-256 (AES-256) Serpent XTEA Blowfish Enigma RC2 TripleDES DES Extended DES Blowfish $2y$ WinNT MD4 $3$ MD5 $1$ SHA-256 $5$ SHA-512 $6$ ROT13 (encode/decode) Base64 Encode Base64 Decode UU Encode UU Decode URL Encode URL Decode.

That’s it for now. If you have another favorite online tool please write me here and I’ll add it to the list 😉

One reply on “Free online tools to work with BASE64, HASH, CRC, HEX, BIN and etc…”

/*
* md5.js 1.0b 27/06/96
*
* Javascript implementation of the RSA Data Security, Inc. MD5
* Message-Digest Algorithm.
*
* Copyright (c) 1996 Henri Torgemane. All Rights Reserved.
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for any purposes and without
* fee is hereby granted provided that this copyright notice
* appears in all copies.
*
* Of course, this soft is provided “as is” without express or implied
* warranty of any kind.
*
*
* Modified with german comments and some information about collisions.
* (Ralf Mieke, ralf@miekenet.de, http://mieke.home.pages.de)
*/

function array(n) {
for(i=0;i> 4 zu berechnen..
* Die nun verwendeten Funktionen sind zwar langsamer als die Originale,
* aber sie funktionieren.
*/

function integer(n) { return n%(0xffffffff+1); }

function shr(a,b) {
a=integer(a);
b=integer(b);
if (a-0x80000000>=0) {
a=a%0x80000000;
a>>=b;
a+=0x40000000>>(b-1);
} else
a>>=b;
return a;
}

function shl1(a) {
a=a%0x80000000;
if (a&0x40000000==0x40000000)
{
a-=0x40000000;
a*=2;
a+=0x80000000;
} else
a*=2;
return a;
}

function shl(a,b) {
a=integer(a);
b=integer(b);
for (var i=0;i=0)
if (t2>=0)
return ((t1&t2)+0x80000000);
else
return (t1&b);
else
if (t2>=0)
return (a&t2);
else
return (a&b);
}

function or(a,b) {
a=integer(a);
b=integer(b);
var t1=(a-0x80000000);
var t2=(b-0x80000000);
if (t1>=0)
if (t2>=0)
return ((t1|t2)+0x80000000);
else
return ((t1|b)+0x80000000);
else
if (t2>=0)
return ((a|t2)+0x80000000);
else
return (a|b);
}

function xor(a,b) {
a=integer(a);
b=integer(b);
var t1=(a-0x80000000);
var t2=(b-0x80000000);
if (t1>=0)
if (t2>=0)
return (t1^t2);
else
return ((t1^b)+0x80000000);
else
if (t2>=0)
return ((a^t2)+0x80000000);
else
return (a^b);
}

function not(a) {
a=integer(a);
return (0xffffffff-a);
}

/* Beginn des Algorithmus */

var state = new array(4);
var count = new array(2);
count[0] = 0;
count[1] = 0;
var buffer = new array(64);
var transformBuffer = new array(16);
var digestBits = new array(16);

var S11 = 7;
var S12 = 12;
var S13 = 17;
var S14 = 22;
var S21 = 5;
var S22 = 9;
var S23 = 14;
var S24 = 20;
var S31 = 4;
var S32 = 11;
var S33 = 16;
var S34 = 23;
var S41 = 6;
var S42 = 10;
var S43 = 15;
var S44 = 21;

function F(x,y,z) {
return or(and(x,y),and(not(x),z));
}

function G(x,y,z) {
return or(and(x,z),and(y,not(z)));
}

function H(x,y,z) {
return xor(xor(x,y),z);
}

function I(x,y,z) {
return xor(y ,or(x , not(z)));
}

function rotateLeft(a,n) {
return or(shl(a, n),(shr(a,(32 – n))));
}

function FF(a,b,c,d,x,s,ac) {
a = a+F(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function GG(a,b,c,d,x,s,ac) {
a = a+G(b, c, d) +x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function HH(a,b,c,d,x,s,ac) {
a = a+H(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function II(a,b,c,d,x,s,ac) {
a = a+I(b, c, d) + x + ac;
a = rotateLeft(a, s);
a = a+b;
return a;
}

function transform(buf,offset) {
var a=0, b=0, c=0, d=0;
var x = transformBuffer;

a = state[0];
b = state[1];
c = state[2];
d = state[3];

for (i = 0; i < 16; i++) {
x[i] = and(buf[i*4+offset],0xff);
for (j = 1; j MG!X?!51$)W,CXV!A”=(!AR71,TF$W()/MEHR%C4:G1R:Q”=
`
end

begin 644 Message2
M7MH=JO6_>MG!X?!51$)W,CXV!A”=(!AR71,TF$W()/MEHREC4:G1R:Q”=
`
end
*/
function init() {
count[0]=count[1] = 0;
state[0] = 0x67452301;
state[1] = 0xefcdab89;
state[2] = 0x98badcfe;
state[3] = 0x10325476;
for (i = 0; i < digestBits.length; i++)
digestBits[i] = 0;
}

function update(b) {
var index,i;

index = and(shr(count[0],3) , 0x3f);
if (count[0]= 63) {
transform(buffer, 0);
}
}

function finish() {
var bits = new array(8);
var padding;
var i=0, index=0, padLen=0;

for (i = 0; i < 4; i++) {
bits[i] = and(shr(count[0],(i * 8)), 0xff);
}
for (i = 0; i < 4; i++) {
bits[i+4]=and(shr(count[1],(i * 8)), 0xff);
}
index = and(shr(count[0], 3) ,0x3f);
padLen = (index < 56) ? (56 – index) : (120 – index);
padding = new array(64);
padding[0] = 0x80;
for (i=0;i<padLen;i++)
update(padding[i]);
for (i=0;i<8;i++)
update(bits[i]);

for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
digestBits[i*4+j] = and(shr(state[i], (j * 8)) , 0xff);
}
}
}

/* Ende des MD5 Algorithmus */

function hexa(n) {
var hexa_h = "0123456789abcdef";
var hexa_c="";
var hexa_m=n;
for (hexa_i=0;hexa_i<8;hexa_i++) {
hexa_c=hexa_h.charAt(Math.abs(hexa_m)%16)+hexa_c;
hexa_m=Math.floor(hexa_m/16);
}
return hexa_c;
}

var ascii="01234567890123456789012345678901" +
" !\"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ”+
“[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~”;

function MD5(nachricht)
{
var l,s,k,ka,kb,kc,kd;

init();
for (k=0;k<nachricht.length;k++) {
l=nachricht.charAt(k);
update(ascii.lastIndexOf(l));
}
finish();
ka=kb=kc=kd=0;
for (i=0;i<4;i++) ka+=shl(digestBits[15-i], (i*8));
for (i=4;i<8;i++) kb+=shl(digestBits[15-i], ((i-4)*8));
for (i=8;i<12;i++) kc+=shl(digestBits[15-i], ((i-8)*8));
for (i=12;i<16;i++) kd+=shl(digestBits[15-i], ((i-12)*8));
s=hexa(kd)+hexa(kc)+hexa(kb)+hexa(ka);
return s;
}

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.