首页 > 其他分享 >一个简单的MD5加盐

一个简单的MD5加盐

时间:2024-05-10 11:55:35浏览次数:8  
标签:return String 加盐 static 简单 digest MD5

虽然都说MD5加密一下密码比较好,但是如果密码过于简单,比如123456,经过MD5加密之后还是不安全,因为别有用心的人可以使用彩虹表来撞库得到密码。因此为了加大破解难度,需要给MD5算法加盐。下面是一个简单的加盐算法。
当然,我不是说加了盐就一劳永逸了,下面的代码也不安全,这样做只是为了加大破解的难度。

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * MD5加密工具类
 */
public class Md5EncryptionHelper {

    /**
     * 获取MD5字符串
     */
    public static String getMD5(String content) {
        try {
            MessageDigest digest = MessageDigest.getInstance("MD5");
            digest.update(content.getBytes());
            return getHashString(digest);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

    private static final String SALT = "0fdfa5e5a88bebae640a5d88e7c84708";

    /**
     * 获取加盐的MD5字符串
     */
    public static String getMD5WithSalt(String content) {
        return getMD5(getMD5(content) + SALT);
    }

    private static String getHashString(MessageDigest digest) {
        StringBuilder builder = new StringBuilder();
        for (byte b : digest.digest()) {
            builder.append(Integer.toHexString((b >> 4) & 0xf));
            builder.append(Integer.toHexString(b & 0xf));
        }
        return builder.toString();
    }
}

 

参考:

https://www.jianshu.com/p/df70661da2d5

 

标签:return,String,加盐,static,简单,digest,MD5
From: https://www.cnblogs.com/super-chao/p/18184028

相关文章

  • dremio CatalogMaintenanceService 服务简单说明
    说明此服务是从25.0开始包含的,同时在releasenote中也有说明,以下主要说明下内部实现release信息如下,具体就不翻译了,主要是添加了一个每个任务进行每个view最大保留50个历史信息Addeddailycatalogmaintenancetaskstotrimhistoryofviewstoamaximumof50......
  • react + antd + js 简单Cron组件,支持国际化
    Cron.jsimportReact,{Fragment,useState,useCallback,useRef,useEffect}from'react';import{Select,TimePicker,Input}from'antd';constOption=Select.Option;constmwidth80={minWidth:80,marginRight:10};constwidt......
  • 前端导出简单的Excel
    //报表导出exportProjectCount:asyncfunction(){letthat=this;awaitthat.getProjectCount().then(()=>{console.log("日志输出",that.dataCount.length)letdataLi......
  • PCIE思考:简单路由
    上电:主机设备上电,BIOS通过扫描下游设备的BAR,为其注册响应的空间,当需要对这些空间进行操作的时候,就会转换成TLP包的形式进行访问,当然直接和PCIE设备交互的还是RC;其中BAR的低位(具体情况具体分析)作为寻址其的地址;简单DMA读步骤(PCIE设备发起读):1.下游设备发起请求;2.CPU把数据写到......
  • .net core web项目在docker中简单部署方法
    #这是我的dockerFile文件FROMmcr.microsoft.com/dotnet/aspnet:8.0ASbaseUSERappWORKDIR/appEXPOSE8080EXPOSE8081#设置入口点CMD["dotnet","ImageCreate.dll"]#ImageCreate.dll代表你的应用 docker-compose.yml version:'3'servic......
  • nicegui:Python 图形界面库,简单好用
    前言在现代计算机应用程序开发中,图形用户界面(GUI)是用户与程序交互的重要组成部分。然而,GUI开发往往需要大量的代码和复杂的布局,给开发者带来了一定的挑战。在本篇博文中,将介绍nicegui,它是一个简单易用的图形用户界面库,提供了一种简化GUI开发的方式,使开发者能够更快速地构建吸......
  • dbt plugin 系统简单说明
    dbt实际上提供了一个plugin架构(属于扩展与adapter的plugin机制是不一样的)只是目前官方缺少文档的说明以下是一些简单说明内部处理插件接口定义目前相对简单,只提供了核心是3个方法initialize,get_nodes,get_manifest_artifactsclassdbtPlugin:"""......
  • nicegui:Python 图形界面库,简单好用
    前言在现代计算机应用程序开发中,图形用户界面(GUI)是用户与程序交互的重要组成部分。然而,GUI开发往往需要大量的代码和复杂的布局,给开发者带来了一定的挑战。在本篇博文中,将介绍nicegui,它是一个简单易用的图形用户界面库,提供了一种简化GUI开发的方式,使开发者能够更快速地构建吸......
  • Altium PCB添加平衡铜/盗铜的方法(依旧是简单粗暴)
    最近画的板子遇到了PCB残铜率不足的问题,一般想法也是用整板覆铜的方法来填满空旷的区域,但是这个会带来很多碎铜,特别是表层有元器件,覆铜会产生更多碎铜,但是不覆铜又会导致残铜率低,板厂的说法是残铜率过低会导致PCB外层电镀时电流不均衡,后果就是铜箔厚度不均匀,内层残铜率过低会影响......
  • 矩阵之间的关系简单整理
    等价:可以通过初等变换互相转化的矩阵。当A和B为同型矩阵,且r(A)=r(B)时,A,B一定等价。相似:\(P^{-1}AP=B\)。本质是基坐标转换,表示在不同坐标系下效果相同的线性变换过程。P为基坐标转换矩阵,是新基向量按列排列形成的矩阵。重要性质(原理):A与B相似,则A与B有相同的特征值(亦有相同的迹与......