設(shè)計(jì)登陸表, 兩次MD5加密

1、數(shù)據(jù)庫設(shè)計(jì)

2、明文密碼兩次MD5處理

http在網(wǎng)絡(luò)中是通過明文來進(jìn)行傳輸?shù)?,如果用戶登陸時(shí)輸入的用戶名和密碼不做處理。那么如果數(shù)據(jù)包對別人截取到了,就能過得到數(shù)據(jù)包中的明文密碼。

兩次MD5:

第一次加密: 將用戶輸入的明文密碼加上固定Salt 之后進(jìn)行MD5加密,然后在網(wǎng)絡(luò)中進(jìn)行傳輸。當(dāng)傳輸?shù)竭_(dá)服務(wù)器端的時(shí)候,進(jìn)行第二次加密。

用戶端: PASS = MD5(明文 + 固定Salt)

第二次加密:第一次加密后的密文和一個(gè)隨機(jī)Salt結(jié)合之后,再進(jìn)行一次MD5加密(這是為了防止數(shù)據(jù)庫被盜,如果只進(jìn)行一次MD5加密的話,可以通過反查表的方式推算出明文密碼)。

服務(wù)端: PASS = MD5(用戶輸入 + 隨機(jī)Salt)

首先,需要在pom.xml中引入MD5相關(guān)的依賴:

<dependency>
  <groupId>commons-codec</groupId>
  <artifactId>commons-codec</artifactId>
</dependency>
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-lang3</artifactId>
  <version>3.6</version>
</dependency>

然后,新建包 com...util,在這個(gè)包下面新建類 MD5Util.java:

package com.*.*.util;

import org.apache.commons.codec.digest.DigestUtils;

public class MD5Util {
    
    public static String md5(String src) {
        return DigestUtils.md5Hex(src);
    }
    
    private static final String salt = "1a2b3c4d";
    
    public static String inputPassToFormPass(String inputPass) {
        String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass +salt.charAt(5) + salt.charAt(4);
        System.out.println(str);
        return md5(str);
    }
    
    public static String formPassToDBPass(String formPass, String salt) {
        String str = ""+salt.charAt(0)+salt.charAt(2) + formPass +salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }
    
    public static String inputPassToDbPass(String inputPass, String saltDB) {
        String formPass = inputPassToFormPass(inputPass);
        String dbPass = formPassToDBPass(formPass, saltDB);
        return dbPass;
    }
    
    public static void main(String[] args) {
        System.out.println(inputPassToFormPass("123456"));//d3b1294a61a07da9b49b6e22b2cbd7f9
//      System.out.println(formPassToDBPass(inputPassToFormPass("123456"), "1a2b3c4d"));
//      System.out.println(inputPassToDbPass("123456", "1a2b3c4d"));//b7797cce01b4b131b433b6acf4add449
    }
    
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容