code: static public String asLowerCaseString(byte[] bytes) {
  
          char chars[] = new char[bytes.length];
          char c;
          for (int i = 0; i < bytes.length; i++) {
              c = (char) (bytes[i] & 0xff);
              if ('A' <= chars[i] && 'Z' >= chars[i]) {
                  chars[i] = (char) (c + 32);
              } else {
                  chars[i] = c;
              }
          }
          return new String(chars);
      }
docs: Convert a byte[] to a lower-case String and skip the StringEncoder
  overhead by passing through a char[] first.
  
  @param bytes
  @return String (lowercase)