=====Java生成隨機字符串=====
public String generateToken() { String s = String.valueOf(System.currentTimeMillis() + new Random().nextInt()); try { MessageDigest messageDigest = MessageDigest.getInstance("md5"); byte[] digest = messageDigest.digest(s.getBytes()); return Base64.getEncoder().encodeToString(digest);//不使用Base64的話會出現亂碼。因為new String默認編碼可能不能完全包含上面這個字節數組 //base64將每三個字節轉成4個字節,這樣高位就使用00補齊,這樣最大也就是63,最小為0。一共只有64種情況,就不會出現亂碼了。 /** * Java8之前的做法 */ // BASE64Encoder encoder = new BASE64Encoder(); // return encoder.encode(digest); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(); } }
=====Java生成MD5簡單實例====
public static void main(String[] args) { String password = "123456"; try { MessageDigest instance = MessageDigest.getInstance("MD5");// 獲取MD5算法對象 byte[] digest = instance.digest(password.getBytes());// 對字符串加密,返回字節數組 StringBuffer sb = new StringBuffer(); for (byte b : digest) { int i = b & 0xff;// 獲取字節的低八位有效值 String hexString = Integer.toHexString(i);// 將整數轉為16進制 // System.out.println(hexString); if (hexString.length() < 2) { hexString = "0" + hexString;// 如果是1位的話,補0 } sb.append(hexString); } System.out.println("md5:" + sb.toString()); System.out.println("md5 length:" + sb.toString().length());//Md5都是32位 } catch (NoSuchAlgorithmException e) { e.printStackTrace(); // 沒有該算法時,拋出異常, 不會走到這里 } }
====java生成隨機md5加密id===
直接使用java自帶uuid
public static void main(String[] args) { UUID uuid = UUID.randomUUID(); System.out.println(uuid.toString()); }
