密码加密与解密
项目开发中,一些敏感数据需要进行加密处理,用的时候进行解密处理,会用到很多种加解密方式,今天介绍:DES对称加密与解密
一、代码如下:
package com.pasture.pastureService.common.utils;
import cn.hutool.core.codec.Base64;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
/**
* @Classname DESPasswordUtils
* @Description DES加密解密工具类
* @Date 2022/3/7 12:00
* @Created by 小郭
*/
public class DESPasswordUtils {
/**
* DES加密+解密
* @param text 文本内容
* @param mode true-加密 false-解密
* @return
* @throws NoSuchAlgorithmException
* @throws NoSuchPaddingException
* @throws InvalidKeyException
* @throws IllegalBlockSizeException
* @throws BadPaddingException
* @throws InvalidKeyException
*/
public static String extracted(String text, boolean mode) throws Exception {
String key = "12345678";//des必须8字节
// 算法/模式/填充 默认 DES/ECB/PKCS5Padding
String transformation = "DES";
Cipher cipher = Cipher.getInstance(transformation);
// key 与给定的密钥内容相关联的密钥算法的名称
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), transformation);
//Cipher 的操作模式,加密模式:ENCRYPT_MODE、 解密模式:DECRYPT_MODE、包装模式:WRAP_MODE 或 解包装:UNWRAP_MODE)
cipher.init(mode ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, secretKeySpec);
byte[] bytes = cipher.doFinal(mode ? text.getBytes(StandardCharsets.UTF_8) : Base64.decode(text));
return mode ? Base64.encode(bytes) : new String(bytes);
}
public static void main(String[] args) throws Exception {
String text = "禾文科技你好,你好这个世界";
String extracted = extracted(text, true);
System.out.println("DES加密:" + extracted);
String extracted1 = extracted(extracted, false);
System.out.println("解密:" + extracted1);
}
}
二、使用方法
直接复制以上代码即可使用
本文来自博客园,作者:青喺半掩眉砂,转载请注明原文链接:https://www.cnblogs.com/xiaoguo-java/p/17882040.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· spring官宣接入deepseek,真的太香了~