Pārlūkot izejas kodu

增加md5Base62

zhouhao 2 gadi atpakaļ
vecāks
revīzija
5692a8986f

+ 6 - 0
hsweb-core/pom.xml

@@ -126,5 +126,11 @@
             <artifactId>netty-common</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>io.seruco.encoding</groupId>
+            <artifactId>base62</artifactId>
+            <version>0.1.3</version>
+        </dependency>
+
     </dependencies>
 </project>

+ 12 - 2
hsweb-core/src/main/java/org/hswebframework/web/utils/DigestUtils.java

@@ -1,7 +1,9 @@
 package org.hswebframework.web.utils;
 
 import io.netty.util.concurrent.FastThreadLocal;
+import io.seruco.encoding.base62.Base62;
 import org.apache.commons.codec.binary.Hex;
+import org.hswebframework.web.id.RandomIdGenerator;
 
 import java.security.MessageDigest;
 import java.util.function.Consumer;
@@ -22,15 +24,20 @@ public class DigestUtils {
             return org.apache.commons.codec.digest.DigestUtils.getSha256Digest();
         }
     };
-    ;
+
     public static final FastThreadLocal<MessageDigest> sha1 = new FastThreadLocal<MessageDigest>() {
         @Override
         protected MessageDigest initialValue() {
             return org.apache.commons.codec.digest.DigestUtils.getSha1Digest();
         }
     };
-    ;
 
+    private static final Base62 base62 = Base62.createInstance();
+
+
+    public static Base62 base62(){
+        return base62;
+    }
     public static byte[] md5(Consumer<MessageDigest> digestHandler) {
         return digest(md5::get, digestHandler);
     }
@@ -66,6 +73,9 @@ public class DigestUtils {
     public static String md5Hex(String str) {
         return Hex.encodeHexString(md5(str.getBytes()));
     }
+    public static String md5Base62(String str) {
+        return new String(base62.encode(md5(str.getBytes())));
+    }
 
     public static byte[] sha256(byte[] data) {
         return org.apache.commons.codec.digest.DigestUtils.digest(sha256.get(), data);

+ 14 - 1
hsweb-core/src/test/java/org/hswebframework/web/id/IDGeneratorTests.java

@@ -3,6 +3,9 @@ package org.hswebframework.web.id;
 import org.junit.Assert;
 import org.junit.Test;
 
+import java.util.HashSet;
+import java.util.Set;
+
 /**
  * @author zhouhao
  * @since 3.0
@@ -19,9 +22,19 @@ public class IDGeneratorTests {
         Assert.assertNotNull(IDGenerator.RANDOM.generate());
         Assert.assertNotNull(IDGenerator.SNOW_FLAKE.generate());
         Assert.assertNotNull(IDGenerator.SNOW_FLAKE_HEX.generate());
-
+        for (int i = 0; i < 100; i++) {
+            System.out.println(IDGenerator.RANDOM.generate());
+        }
         for (int i = 0; i < 100; i++) {
             System.out.println(IDGenerator.SNOW_FLAKE.generate());
         }
+
+        long time = System.currentTimeMillis();
+        Set<String> set =new HashSet<>(100_0000);
+        for (int i = 0; i < 100_0000; i++) {
+            set.add(IDGenerator.RANDOM.generate());
+        }
+        System.out.println(set.size());
+        System.out.println((System.currentTimeMillis()-time));
     }
 }