public String g64encoded(int i) { String s = ""; int j = i; int k = i % 3; if(k != 0) i += 3 - k; for(int l = 0; l < i; l += 3) { s = s + base64enctab[data[l + pos] >> 2 & 0x3f]; if(l + 3 > j) { if(k == 1) { s = s + base64enctab[data[l + pos] << 4 & 0x30]; s = s + "=="; } else if(k == 2) { s = s + base64enctab[data[l + pos] << 4 & 0x30 | data[l + 1 + pos] >> 4 & 0xf]; s = s + base64enctab[data[l + 1 + pos] << 2 & 0x3c]; s = s + "="; } } else { s = s + base64enctab[data[l + pos] << 4 & 0x30 | data[l + 1 + pos] >> 4 & 0xf]; s = s + base64enctab[data[l + 1 + pos] << 2 & 0x3c | data[l + 2 + pos] >> 6 & 3]; s = s + base64enctab[data[l + 2 + pos] & 0x3f]; } } return s; }