reghao 3 năm trước cách đây
mục cha
commit
8fc763107d

+ 39 - 0
jdk/src/main/java/cn/reghao/jutil/jdk/security/DigestUtil.java

@@ -0,0 +1,39 @@
+package cn.reghao.jutil.jdk.security;
+
+import cn.reghao.jutil.jdk.converter.ByteHex;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * @author reghao
+ * @date 2022-04-27 16:37:07
+ */
+public class DigestUtil {
+    public static String md5sum(byte[] bytes) throws NoSuchAlgorithmException {
+        MessageDigest messageDigest = MessageDigest.getInstance("MD5");
+        messageDigest.update(bytes);
+        return ByteHex.bytes2Hex(messageDigest.digest());
+    }
+
+    public static String sha256sum(byte[] bytes) throws IOException, NoSuchAlgorithmException {
+        MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
+        messageDigest.update(bytes);
+        return ByteHex.bytes2Hex(messageDigest.digest());
+    }
+
+    public static String sha256sum(InputStream in) throws IOException, NoSuchAlgorithmException {
+        MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
+        // 16MiB
+        int len = 1024*1024*16;
+        byte[] buf = new byte[len];
+        int readByes;
+        while ((readByes = in.read(buf, 0, len)) != -1) {
+            messageDigest.update(buf, 0, readByes);
+        }
+
+        return ByteHex.bytes2Hex(messageDigest.digest());
+    }
+}