code: protected char[] encodeHex(byte[] data) {
          final int len = data.length;
          final char[] out = new char[len << 1];
          for (int i = 0, j = 0; i < len; i++) {
              out[j++] = DIGITS_LOWER[(0xF0 & data[i]) >>> 4];
              out[j++] = DIGITS_LOWER[0x0F & data[i]];
          }
          return out;
      }
docs: alphabet