基于 hutool md5加密

10,622 阅读2分钟

开发系统中,密码的安全性是最值得开发者和用户重视的,如果在数据库中如果直接储存用户的密码,一旦被攻击,用户的信息将裸露出来。我们可以通过加密的方法,对密码进行加密,再储存数据库。刚好最近接触到 hutool 工具类,就想通过 hutool 来进行加密。

    摘要算法是一种能产生特殊输出格式的算法,这种算法的特点是:无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提
取,这种提取就是摘要,被摘要的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此,基于这种原理的算法便能对数据完整性提供较为健全的保障。
    但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是不可逆的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证。

--摘自 https://www.hutool.cn/

前提:添加依赖

<dependencies>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.8.2</version>
    </dependency>
</dependencies>

注:这里使用 hutool 工具类进行加密,通过 maven 工程导入依赖,也可以到官网下载jia包添加。

加密用法:

public static void main(String[] args) {
    String str="abcdefg";
    String md5Hex1 = DigestUtil.md5Hex(str);
    System.out.println(md5Hex1);
}

控制台输出结果为:7ac66c0f148de9519b8bd264312c4d64

注:这里使用 md5 加密算法,除了 md5 还有其他算法。

也许你会问,加密后这串字符串有什么用?我们看上面的摘要,可以知道这个过程是不可逆的,也就是说,这串字符别人知道了,这种情况下,用户登录就需要将用户输入的密码进行加密,再比较是否相同。在大数据时代下,我觉得这种操作是很有必要的。

以上如果有错误请指教。