前端密码加密的业务

用户登录时,对登录密码进行加密传输。

密码加密流程

前端加密功能

密钥配置要求

修改密钥时注意修改前后端的 key,必须为 16 位,保持一致。

前端 .env 文件提供 AES 对称加密算法,注意 key 和后端网关配置相同,这里打包混淆后,相对安全。

前端密钥配置

对应后端代码解密的 key 在 nacos/pigx-auth-dev.yml 定义:

后端密钥配置

通过在线服务获取密文

使用密码加密服务: https://enc.pig4cloud.com

在线加密服务

通过服务代码加解密

import cn.hutool.crypto.*;

@Test
public void testEnc() {
    // 构建前端对应解密AES 因子
    AES aes = new AES(Mode.CFB, Padding.NoPadding,
            new SecretKeySpec("pigxpigxpigxpigx".getBytes(), "AES"),
            new IvParameterSpec("pigxpigxpigxpigx".getBytes()));
    String password = aes.encryptBase64("123456", Charset.defaultCharset());

    Assertions.assertEquals("JFat0Zdc", password);
}

@Test
public void testDec() {
    // 构建前端对应解密AES 因子
    AES aes = new AES(Mode.CFB, Padding.NoPadding,
            new SecretKeySpec("pigxpigxpigxpigx".getBytes(), "AES"),
            new IvParameterSpec("pigxpigxpigxpigx".getBytes()));
    String password = aes.decryptStr("JFat0Zdc", Charset.defaultCharset());
    Assertions.assertEquals("123456", password);
}
AES加密说明

AES 对称加密在前后端传输场景中是成熟的解决方案,配合 HTTPS 使用可以有效保护密码安全。