首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >设计登陆表, 两次MD5加密

设计登陆表, 两次MD5加密

作者头像
用户1212940
发布2022-04-13 14:43:38
发布2022-04-13 14:43:38
6270
举报
文章被收录于专栏:LambdaLambda

1、数据库设计

2、明文密码两次MD5处理

http在网络中是通过明文来进行传输的,如果用户登陆时输入的用户名和密码不做处理。那么如果数据包对别人截取到了,就能过得到数据包中的明文密码。

两次MD5:

第一次加密: 将用户输入的明文密码加上固定Salt 之后进行MD5加密,然后在网络中进行传输。当传输到达服务器端的时候,进行第二次加密。

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

第二次加密:第一次加密后的密文和一个随机Salt结合之后,再进行一次MD5加密(这是为了防止数据库被盗,如果只进行一次MD5加密的话,可以通过反查表的方式推算出明文密码)。

服务端: PASS = MD5(用户输入 + 随机Salt)

首先,需要在pom.xml中引入MD5相关的依赖:

代码语言:javascript
复制
<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,在这个包下面新建类 MD5Util.java:

代码语言:javascript
复制
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
    }
    
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/08/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、数据库设计
  • 2、明文密码两次MD5处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档