博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3DES
阅读量:6358 次
发布时间:2019-06-23

本文共 2237 字,大约阅读时间需要 7 分钟。

3DES是继DESeasy被破解后的DES加密升级版,它属于对称加密。

可指定24位长度的密钥。在java API中也有事实上现,代码例如以下:

/** * 3DES 的Java SDK API 实现 * @author dxd * 201406917 */public class DES3 {	private static final String Algorithm = "DESede";// 定义 加密算法,可用	//keybyte为加密密钥。长度为24字节    //src为被加密的数据缓冲区(源)    public static byte[] encryptMode(byte[] keybyte, byte[] src) {       try {            //生成密钥            SecretKey deskey = new SecretKeySpec(keybyte, Algorithm);            //加密            Cipher c1 = Cipher.getInstance(Algorithm);            c1.init(Cipher.ENCRYPT_MODE, deskey);            return c1.doFinal(src);        } catch (java.security.NoSuchAlgorithmException e1) {            e1.printStackTrace();        } catch (javax.crypto.NoSuchPaddingException e2) {            e2.printStackTrace();        } catch (java.lang.Exception e3) {            e3.printStackTrace();        }        return null;    }    //keybyte为加密密钥,长度为24字节    //src为加密后的缓冲区    public static byte[] decryptMode(byte[] keybyte, byte[] src) {          try {            //生成密钥            SecretKey deskey = new SecretKeySpec(keybyte, Algorithm);            //解密            Cipher c1 = Cipher.getInstance(Algorithm);            c1.init(Cipher.DECRYPT_MODE, deskey);            return c1.doFinal(src);        } catch (java.security.NoSuchAlgorithmException e1) {            e1.printStackTrace();        } catch (javax.crypto.NoSuchPaddingException e2) {            e2.printStackTrace();        } catch (java.lang.Exception e3) {            e3.printStackTrace();        }        return null;    }    //转换成十六进制字符串    public static String byte2hex(byte[] b) {        String hs="";        String stmp="";        for (int n=0;n
调用时能够:

byte[] keydata = {     		(byte) 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07,     		(byte) 0x08, (byte) 0x09, (byte) 0x0a, (byte) 0x0b, (byte) 0x0c, (byte) 0x0d, (byte) 0x0e, (byte) 0x0f,     		(byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x13, (byte) 0x14, (byte) 0x15, (byte) 0x16, (byte) 0x17, };	String src = "3DES加密算法" ;	byte[] encoded = DES3.encryptMode(keydata, src.getBytes());	System.out.println("DES3-->Encoded = " + new String(encoded));
则能够计算出原文src加密后的密文。

转载于:https://www.cnblogs.com/gavanwanggw/p/6781338.html

你可能感兴趣的文章
你好,C++(16)用表达式表达我们的设计意图——4.1 用操作符对数据进行运算...
查看>>
18.3 redis 的安装
查看>>
jdbc 简单连接
查看>>
Activiti 实战篇 小试牛刀
查看>>
java中的Static class
查看>>
[工具类]视频音频格式转换
查看>>
GNS3与抓包工具Wireshark的关联
查看>>
groovy-语句
查看>>
Java VisualVM远程监控JVM
查看>>
nasm预处理器(2)
查看>>
二叉排序树 算法实验
查看>>
Silverlight 5 beta新特性探索系列:10.浏览器模式下内嵌HTML+浏览器模式下创建txt文本文件...
查看>>
YourSQLDba 配置——修改备份路径
查看>>
nginx web服务理论与实战
查看>>
java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
查看>>
ES6 - 函数与剩余运算符
查看>>
你对position了解有多深?看完这2道有意思的题你就有底了...
查看>>
WebSocket跨域问题解决
查看>>
世界经济论坛发布关于区块链网络安全的报告
查看>>
巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
查看>>