Java使用MD5加密算法,實現等登陸功能


Java實現MD5加密

為了保護有些數據,就需要采取一些手段來進行數據的加密,防止被別人破解。

MD5簡介

md5的全稱是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一種被廣泛使用的密碼散列函數,可以產生一個128位(16字節,1字節8位)的散列值(常見的是用32位的16進制表示,比如:0caa3b23b8da53f9e4e041d95dc8fa2c),用於確保信息傳輸的完整一致。

功能實現

1、MD5的工具類


import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
 * 南宮乘風
 */
public class MD5Utils {
    /**
     * MD5加密類
     * @param str 要加密的字符串
     * @return    加密后的字符串
     */
    public static String code(String str){
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(str.getBytes());
            byte[]byteDigest = md.digest();
            int i;
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < byteDigest.length; offset++) {
                i = byteDigest[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            //32位加密
            return buf.toString();
            // 16位的加密
            //return buf.toString().substring(8, 24);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 測試方法
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(code("111111"));
    }
}

最下面這個是測試方法

2、項目中調用

我在項目的接口中調用MD5的方法

public User checkUser(String username, String password) {
        User user = userRepository.findByUsernameAndPassword(username, MD5Utils.code(password));
        return user;
    }

解析:這就是用戶登錄把密碼傳遞過來,進行MD5加密后,在和數據庫中的密碼進行對比(數據庫中的密碼是MD5格式存儲的

3、思路拓展(防止重要信息被盜用)

  1. 賬號注冊
  2. 密碼登錄
  3. 信息保護
  4. 資料加密

等等,許多的功能都可以用到這樣的方法來進行加密。

 

 


免責聲明!

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



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