var getencodestring = function (srcstring) { //var srcstring = 'abc'; var base32char = "abcdefghijklmnopqrstuvwxyz234567"; var i = 0; var index = 0; var digit = 0; var currbyte; var nextbyte; var retrunstring = ''; for (var i = 0; i < srcstring.length;) { //var index = 0; currbyte = (srcstring.charcodeat(i) >= 0) ? srcstring.charcodeat(i) : (srcstring.charcodeat(i) + 256); if (index > 3) { if ((i + 1) < srcstring.length) { nextbyte = (srcstring.charcodeat(i + 1) >= 0) ? srcstring.charcodeat(i + 1) : (srcstring.charcodeat(i + 1) + 256); } else { nextbyte = 0; } digit = currbyte & (0xff >> index); index = (index + 5) % 8; digit <<= index; digit |= (nextbyte >> (8 - index)); i++; } else { digit = (currbyte >> (8 - (index + 5))) & 0x1f; index = (index + 5) % 8; if (index == 0) { i++; } } retrunstring = retrunstring + base32char.charat(digit); } return retrunstring.tolowercase(); }