Java生成隨機字符串與md5加密


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM