static S md5(String text) ctex { if (text == null) ret "-"; return bytesToHex(md5_impl(text.getBytes("UTF-8"))); // maybe different than the way PHP does it... } static S md5(byte[] data) { if (data == null) ret "-"; ret bytesToHex(md5_impl(data)); } static MessageDigest md5_md; /*static byte[] md5_impl(byte[] data) ctex { if (md5_md == null) md5_md = MessageDigest.getInstance("MD5"); return ((MessageDigest) md5_md.clone()).digest(data); }*/ static byte[] md5_impl(byte[] data) ctex { return MessageDigest.getInstance("MD5").digest(data); } static S md5(File file) { ret md5OfFile(file); }