=====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()); }