在将oracle迁移到hive时,需要将oracle部分功能通过hive来实现,其中涉及到oracle md5加密,如下是Java实现写法:
// 获取字符串的md5数值 public static String GetMd5StrFun(String plainText) { if (null == plainText) { plainText = ""; } String MD5Str = ""; try { // JDK 6 支持以下6种消息摘要算法,不区分大小写 // md5,sha(sha-1),md2,sha-256,sha-384,sha-512 MessageDigest md = MessageDigest.getInstance("MD5"); md.update(plainText.getBytes()); byte b[] = md.digest(); int i; StringBuilder builder = new StringBuilder(32); for (int offset = 0; offset < b.length; offset++) { i = b[offset]; if (i < 0) i += 256; if (i < 16) builder.append("0"); builder.append(Integer.toHexString(i)); } MD5Str = builder.toString(); MD5Str = MD5Str.toUpperCase(); // LogUtil.println("result: " + buf.toString());// 32位的加密 } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return MD5Str; }
可以用在hive的自定义函数中。