`

Java 3DES 加解密

阅读更多
3DES,即三重DES,是DES的加强版。它使用3条56位(共168位)的密钥对数据进行三次加密,通常情况下,提供了较为强大的安全性。

使用3DES和使用DES时类似,需要将算法名称由"DES"改为"DESede"和略微的改变:

public class ThreeDESHelper {
	static String keyFileName = "3des_key.xml";
	private static final String ALGORITHM = "DESede";

	// These segments that are similar to the ones of DES are omitted

	private static SecretKey generateSecretKey(String key) {
		SecretKey secretKey = null;
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			byte[] bytes = key.getBytes();
			md.update(bytes, 0, bytes.length);
			byte[] mdBytes = md.digest(); // Generate 16 bytes whenever
			byte[] encodedBytes = org.apache.commons.codec.binary.Base64.encodeBase64(mdBytes); // Generate 24 bytes for DESedeKeySpec
			DESedeKeySpec keySpec = new DESedeKeySpec(encodedBytes);
			SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
			secretKey = keyFactory.generateSecret(keySpec);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return secretKey;
	}
}

这里我们使用了消息摘要和Base64编码技术来产生24个字节的key。
分享到:
评论

相关推荐

    JAVA实现DES加解密系统

    **JAVA实现DES加解密系统** DES(Data Encryption Standard)是一种经典的对称加密算法,它在信息安全领域有着广泛的应用。本文将深入探讨如何使用Java语言实现DES加解密系统,以及涉及的相关技术点。 首先,DES...

    JAVA实现3DES加密解密

    本篇文章将探讨如何使用Java来实现3DES的加密和解密操作。 首先,让我们了解3DES的工作原理。3DES是对原始DES算法的三次应用,它通过将密钥分为三个部分,然后执行加密、解密、再加密的过程,从而提高了安全性。这...

    java的DES加密解密

    java的DES加密解密:用于密码在数据库的加密,解码类

    java和javascript之间的DES加密解密

    3. **JavaScript实现DES加密解密**: JavaScript中没有内置的DES库,通常需要依赖第三方库,如`crypto-js`。这个库提供了DES加密解密的功能,使用方式类似于Java,先生成密钥,然后调用相应的加密或解密函数。 4. ...

    Java中3DES加密解密示例(封装byte数组16进制互转)

    Java 中的 3DES 加密解密示例(封装 byte 数组和 16 进制字符串互转) 在 Java 中,3DES 加密是一种常用的加密算法,它可以将明文数据转换为密文数据,以保护数据的安全性。在本示例中,我们将展示如何使用 3DES ...

    des加密解密java实现版本

    在Java中实现DES加密和解密是一项常见的任务,通常涉及到`javax.crypto`包中的类和接口。本篇文章将详细阐述DES加密解密的Java实现过程。 首先,我们需要了解DES算法的基本原理。DES是一种块密码,它将明文数据分成...

    基于Java实现的加解密方法(DES、3DES、AES)以及五种分组密码工作模式

    本教程主要探讨了如何使用Java编程语言实现DES(Data Encryption Standard)、3DES(Triple DES)和AES(Advanced Encryption Standard)这三种常见的对称加密算法,并且详细讲解了五种分组密码的工作模式。...

    3DES加密解密java版+js版

    在Java和JavaScript中实现3DES加密和解密,主要涉及以下几个关键知识点: 1. **密钥生成**:3DES需要一个168位的密钥,但通常我们提供的是一个128位或更短的密钥。Java中的`javax.crypto.SecretKeyFactory`和`javax...

    java php DES 加密解密

    在Java中,DES加密解密主要通过`javax.crypto`包中的类来实现。首先,我们需要一个密钥,通常是8字节的字节数组。然后,使用`KeyGenerator`生成一个DES密钥。接下来,创建`Cipher`对象并初始化它,根据需要进行加密...

    java和C#通用des3加解密

    标题中的“java和C#通用des3加解密”指的是在Java和C#这两种不同的编程语言中实现DES(Data Encryption Standard)的加强版——3DES(Triple DES)加解密算法。3DES是一种广泛使用的对称加密算法,通过三次应用DES的...

    Java实现的3des加密解密工具类示例

    Java实现的3DES加密解密工具类示例 【Java实现的3DES加密解密工具类】 Java实现的3DES加密解密工具类是指使用Java语言实现的三重数据加密算法工具类,该工具类提供了加密和解密两种操作模式,通过设置密钥和加密/...

    java_DES加密解密源码.rar_DES加密_des_java DES_java des_加密 解密

    Java实现des加密解密算法,des加密解密算法

    java代码-使用java解决3DES加密解密的源代码

    java代码-使用java解决3DES加密解密的源代码 ——学习参考资料:仅用于个人学习使用!

    java 3des加密、解密工具类

    java 3des加密、解密工具类 java的3DES加密/解密

    Java版Des加密解密源码

    java版Des加密解密源码 DES加密解密程序的主程序在 FileDES类中 运行时使用的例子是本目录下的111.doc文件,运行后自动生成222.doc文件和333.doc文件。 其中111.doc文件加密后的文件是222.doc文件,222.doc文件...

    Des.JAVA.rar_DES.java_DES加密_java DES 128bit_java des_加密解密

    3. `FileDES.java`:可能是一个用于对文件进行DES加密和解密的类,它可能封装了对文件流的操作,以便于读取文件,加密后的内容,再写入到新的文件中。 4. `trying1.java`和`trying.java`:可能是实验性的或者测试用...

    java 实现 des加解密、mac算法

    本文将详细介绍如何在Java中实现DES加解密和MAC算法,并探讨其应用。 首先,DES是一种对称加密算法,由IBM公司开发,后被美国国家标准局采纳为标准。它使用64位的密钥对数据进行加密和解密,但实际有效密钥长度只有...

    3DES加密解密

    在压缩包中,"DES3.jar"可能是一个包含3DES加密解密功能的Java库文件,可以被其他Java项目导入并直接使用。"使用说明.txt"则提供了关于如何使用这个库以及调用相关加密解密方法的指南。在实际操作中,开发者会按照这...

    java-des.zip_Des加密解密_des_java des_java 加密解密

    des加密解密算法,通过DES加密解密实现一个String字符串的加密和解密.

    java Des/3Des/含向量DES加解密可与C语言DES互相加解密(包含 javabase64 )

    在与C语言实现的DES加解密进行互解时,需要注意以下几点: - **字节顺序**:Java和C语言可能使用不同的字节序(Big-Endian或Little-Endian),在处理字节流时需要确保两者一致。 - **填充方式**:DES加密要求输入的...

Global site tag (gtag.js) - Google Analytics