密码学 commons codec

以后有面试官问你「密码学」,你就把这篇文章扔给他

密码交互基本过程

明文存储密码

单向无盐哈希存储

预计算哈希链集合和彩虹表原理

哈希+盐存储

专业密码加密算法

密码交互过程

密码一般是用在用户登陆认证环节的,完整的过程包括:用户输入密码、客户端加密、网络传输、服务端验证等。

哈希+盐组合加密存储

一直在说无盐单向哈希存储,但什么是盐呢?

简单来说,盐就是在用户输入密码的基础上增加的额外部分数据,这部分数据也参与计算哈希存储密码。

专业的密码加密算法


apache commons codec

处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等.

<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>
package util;

import org.apache.commons.codec.binary.Base64;
import org.springframework.util.Base64Utils;

/**
 *  BASE64加密解密
 */
public class Base64Test {
    public static void main(String[] args){
        String str="Hello World";
        // spring core 工具类
        byte[] base64=Base64Utils.encode(str.getBytes());
        // commons-codec工具类
        byte[] bytes=Base64.encodeBase64(str.getBytes());
        String encodeString=new String(bytes);
        System.out.println("BASE64加密后===>" + encodeString);
        String decodeString=new String(Base64.decodeBase64(bytes));
        System.out.println("BASE64解密后===>" + decodeString);
    }
}

版权声明:本文为qq_43183527原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。