des-cbc加密解密工具

des-cbc加密解密工具packagedes importjava security Key importjava security spec AlgorithmPar importsun misc BASE64Decode importjavax crypto importjavax crypto spec DESKeySpec importjavax c 基于 cbc 模式 des 算法的文件加解密工具

package des;

import sun.misc.BASE64Decoder;

import javax.crypto.*;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.IvParameterSpec;

public class CryptoTools {
private final byte[] DESkey = “0”.getBytes(“UTF-8”);// 设置密钥
private final byte[] DESIV = {0x52, (byte) 0xd3, (byte) 0x91, (byte) 0xac, 0x3e, (byte) 0xad, 0x10, 0x63};// 设置向量

 private AlgorithmParameterSpec iv = null;// 加密算法的参数接口,IvParameterSpec是它的一个实现 private Key key = null; public CryptoTools() throws Exception { DESKeySpec keySpec = new DESKeySpec(DESkey);// 设置密钥参数 iv = new IvParameterSpec(DESIV);// 设置向量 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");// 获得密钥工厂 key = keyFactory.generateSecret(keySpec);// 得到密钥对象 } public byte[] encode(String data) throws Exception { Cipher enCipher = Cipher.getInstance("DES/CBC/PKCS5Padding");// 得到加密对象Cipher enCipher.init(Cipher.ENCRYPT_MODE, key, iv);// 设置工作模式为加密模式,给出密钥和向量 byte[] pasByte = enCipher.doFinal(data.getBytes("utf-8")); return pasByte; } public String decode(String data) throws Exception { Cipher deCipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); deCipher.init(Cipher.DECRYPT_MODE, key, iv); BASE64Decoder base64Decoder = new BASE64Decoder(); byte[] pasByte = deCipher.doFinal(base64Decoder.decodeBuffer(data)); return new String(pasByte, "UTF-8"); } public static void main(String[] args) { try { String test = ""; CryptoTools des = new CryptoTools();//自定义密钥 System.out.println("加密前的字符:"+test); System.out.println("加密后的字符:"+des.encode(test)); } catch (Exception e) { e.printStackTrace(); } } 

}

今天的文章 des-cbc加密解密工具分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-01-05 22:06
下一篇 2025-01-05 22:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/102235.html