private final static String DES = "DES"; /** * 加密 * @param src数据源 * @param key密钥,长度必须是8的倍数 * @return 返回加密后的数据 * @throws Exception */ public static byte[] encrypt(byte[] src, byte[] key) throws Exception { // DES算法要求有一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密匙数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密匙工厂,然后用它把DESKeySpec转换成 // 一个SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成加密操作 Cipher cipher = Cipher.getInstance(DES); // 用密匙初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); // 现在,获取数据并加密 // 正式执行加密操作 return cipher.doFinal(src); } /** * 解密 * @param src数据源 * @param key密钥,长度必须是8的倍数 * @return 返回解密后的原始数据 * @throws Exception */ public static byte[] decrypt(byte[] src, byte[] key) throws Exception { // DES算法要求有一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密匙数据创建一个DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密匙工厂,然后用它把DESKeySpec对象转换成 // 一个SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成解密操作 Cipher cipher = Cipher.getInstance(DES); // 用密匙初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, securekey, sr); // 现在,获取数据并解密 // 正式执行解密操作 return cipher.doFinal(src); }
相关推荐
DES加密解密算法的C语言实现 DES(Data Encryption Standard)是一种对称密钥 BLOCK 加密算法,使用 56 位密钥对 64 位数据块进行加密。下面是 DES 加密解密算法的 C 语言实现的知识点总结。 字节与二进制转换 在...
DES 算法加密算法解密算法 DES 算法概述 DES(Data Encryption Standard)是一种对称密钥块加密算法,由美国 IBM 公司的 W. Tuchman 和 C. Meyer 于 1971-1972 年研制成功。1973 年,美国国家标准局(NBS)公开...
### DES加密算法实验知识点 #### 一、实验背景与目的 **DES(Data Encryption Standard)加密算法**是一种经典的对称加密技术,在信息安全领域占据着重要地位。本实验旨在通过实践操作,加深对DES算法工作原理的...
des加密算法(js+java)加密与解密结果相同 包含三个文件 : des.js des.html ,用于实现前端脚本的加密与解密 des.java 用于后台的加密解密操作; 项目中正好用到,已经过验证,两个加密解密结果相同,分享给...
DES 加密算法是一种分组加密算法,对一定大小的明文或密文来做加密或解密动作。DES 加密算法的实现实验目的理解对称加密算法的原理和特点。实验原理 DES 是一种分组加密算法,每次加密或解密的分组大小均为 64 位,...
这篇C语言源代码实现了DES加密解密算法,特别适合于资源有限的环境,如STM32或51单片机。STM32系列是基于ARM Cortex-M内核的微控制器,而51单片机则是早期广泛应用的8位微处理器。在这些平台上,由于内存(RAM)资源...
DES(Data Encryption Standard)是一种经典的对称加密算法,它在历史上被广泛使用。VB(Visual Basic)作为微软开发的一种编程语言,也提供了实现加密算法的接口。本篇文章将详细探讨如何在VB环境中实现DES加密和...
本文将深入探讨如何使用MFC(Microsoft Foundation Classes)库实现DES(Data Encryption Standard)加密解密算法,以及如何支持文件的打开和保存操作。 DES是一种对称加密算法,由IBM在1970年代开发,并在1977年被...
**Qt DES加密算法展示程序详解** Qt是一个跨平台的C++图形用户界面应用程序开发框架,它为开发者提供了丰富的工具和库,使得构建GUI应用变得容易。在这个“Qt写的DES加密算法展示程序”中,我们将深入探讨DES(Data...
理解并掌握DES加密算法以及如何在Java中实现文件加解密,对于提升数据安全保护能力具有重要意义。然而,需要注意的是,由于DES的密钥长度较短,现代密码学已经不再推荐使用DES,而是转向更安全的算法如AES(Advanced...
本资源提供了C#语言实现AES与DES加密算法的示例代码,包括加密和解密函数的实现。AES(Advanced Encryption Standard,高级加密标准)和DES(Data Encryption Standard,数据加密标准)都是常用的对称加密算法,广泛...
加密为直接输入十六进制的(消息,密钥,1);解密为(密文,密钥,2);Index=1为加密,不为1为解密
对系统资源消耗极低的DES加密算法代码,在普通51单片机上即可实现,仅需4K大小的flash存储,1K大小的ram。操作仅需两个函数,一个加密函数,一个解密函数,使用非常方便。
在本文中,我们将深入探讨DES加密算法的原理、C语言实现及其相关知识点。 DES算法基于Feistel网络结构,它将明文分为左半部分和右半部分,然后通过一系列迭代过程进行加密。每个迭代包含以下步骤: 1. **初始置换...
DES加密算法在当时因其高效性和安全性而被广泛应用,但随着计算能力的提升,它的安全性逐渐受到挑战,目前已被更强大的加密标准如AES(Advanced Encryption Standard)所取代。 在C++中实现DES加密算法,通常会涉及...
2024最新DES加密解密算法(简单、易懂、超级详细)2024最新DES加密解密算法(简单、易懂、超级详细)2024最新DES加密解密算法(简单、易懂、超级详细)2024最新DES加密解密算法(简单、易懂、超级详细)2024最新DES...
在C++中实现DES加密算法,通常涉及到以下几个关键知识点: 1. **DES算法原理**:DES算法基于Feistel结构,通过16轮迭代变换将64位明文数据转化为64位密文。每一轮迭代包含一个子密钥生成过程和一个替换-置换过程。...
C语言实现DES算法DES加密算法实验报告.doc
本篇文章将深入探讨DES加密算法的应用及其在Java编程中的实现。 DES算法由IBM公司在1970年代初设计,后来被美国国家标准局采纳为数据加密标准。该算法基于Feistel结构,使用64位的密钥对64位的数据进行加密,实际...
描述中提到的“如果密码长度为8字节则为DES加密或解密”,这是因为在原始的DES算法中,密钥长度通常是8字节(64位),但实际有效密钥只有56位,因为有8位用于奇偶校验。当输入的密钥长度是8字节时,3DES工具会退化为...