博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以DES的方式实现对称加密,并提供密钥
阅读量:7213 次
发布时间:2019-06-29

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

注释都在代码里了,干了:

import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import javax.xml.bind.annotation.adapters.HexBinaryAdapter;import org.apache.commons.codec.binary.Hex;public class Main {	static String src = "Hello,sahadev!";	public static void main(String[] args) {		DES();	}	public static void DES() {		try {			// 以DES的方式初始化Key生成器			KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");			keyGenerator.init(56);// 设置密钥的长度为56位			// 生成一个Key			SecretKey generateKey = keyGenerator.generateKey();			// 转变为字节数组			byte[] encoded = generateKey.getEncoded();			// 生成密钥字符串			String encodeHexString = Hex.encodeHexString(encoded);			System.out.println("Key : " + encodeHexString);			// 再把我们的字符串转变为字节数组,可以用于另一方使用,验证			byte[] decodeHex = Hex.decodeHex(encodeHexString.toCharArray());			// 生成密钥对象			SecretKeySpec secretKeySpec = new SecretKeySpec(decodeHex, "DES");			// 获取加解密实例			Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");			// 初始化加密模式			cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);			// 加密			byte[] doFinal = cipher.doFinal(src.getBytes());			System.out.println("加密结果 : " + new HexBinaryAdapter().marshal(doFinal));			// 初始化解密模式			cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);			// 解密			byte[] doFinal2 = cipher.doFinal(doFinal);			// 输出解密结果			System.out.println("解密结果 : " + new String(doFinal2));		} catch (Exception e) {			e.printStackTrace();		}	}}
附上输出结果:

Key : 619b862f5e2aad40加密结果 : D98FA80E83593710C0686370665C2FEC解密结果 : Hello,sahadev!

转载地址:http://wtgum.baihongyu.com/

你可能感兴趣的文章
反馈组态的判别
查看>>
【Web】Rest API 验证授权如何做?
查看>>
Swift 中的 @autoclosure
查看>>
多迪将企业的Python工程师定位成哪几类?
查看>>
Rom 检测
查看>>
【iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决(2016 12 15 更新)...
查看>>
Weex学习指南
查看>>
TiDB DevCon 2019 报名开启:年度最高规格的 TiDB 技术大会
查看>>
React Native 初体验
查看>>
数据结构与算法 | 线性表 —— 链表
查看>>
Python3 websocket通信
查看>>
使用MarkDown画矩阵
查看>>
JavaScript函数式编程学习
查看>>
ESXi6.7安装流程和bug处理
查看>>
Alibaba Cluster Data 开放下载:270GB 数据揭秘你不知道的阿里巴巴数据中心
查看>>
巧用这19条MySQL优化,效率至少提高3倍
查看>>
【译】Swift算法俱乐部-查找最大/最小值
查看>>
跟着老司机玩转Node自定义命令行
查看>>
react-redux的Provider和connect
查看>>
杂七杂八的前端基础01——函数作用域
查看>>