code: public static String hex(byte[] bytes) {
          char[] hexChars = new char[bytes.length * 2];
          for (int j = 0; j < bytes.length; j++) {
              int v = bytes[j] & 0xFF;
              hexChars[j * 2] = HEXES_SMALL[v >>> 4];
              hexChars[j * 2 + 1] = HEXES_SMALL[v & 0x0F];
          }
          return new String(hexChars);
      }
docs: Calculating lowcase hex string
  
  @param bytes data for hex
  @return hex string