`
yjandx3543
  • 浏览: 49939 次
  • 性别: Icon_minigender_1
  • 来自: 隐居山林
社区版块
存档分类
最新评论

用java实现3des加密

阅读更多
import java.security.Key;

import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
/**
 * 加密解密工具
 */
public class DesEncrypt {
	private Key key;
	private static final String KEY_ALGORITHM = "DESede";
	private static final String CIPHER_ALGORITHM = "DESede/ECB/PKCS5Padding";
	
	/**
	 * 默认构造函数
	 */
	public DesEncrypt() {
		
	}
	/**
	 * 构造函数,初始化Key
	 * @param keyStore
	 */
	public DesEncrypt(String keyStore) {
		this.toKey(keyStore);
	}

	/**
	 * 初始化Key对象
	 * @param keyText
	 * @return
	 */
	public void toKey(String keyText) {
		DESedeKeySpec dks;
		SecretKeyFactory factory =null;
		if(check(keyText)){
			try {
				dks = new DESedeKeySpec(keyText.getBytes());
				factory= SecretKeyFactory.getInstance(KEY_ALGORITHM);
				this.key = factory.generateSecret(dks);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 
	 * @param 密钥keyText
	 * @return 校验密钥格式是否通过
	 */
	public boolean check(String keyText){
		boolean flag = false ;
		if(keyText!=null&&!"".equals(keyText.trim())){
			if(keyText.trim().length()>=24){
				flag = true ;
			}
		}
		return flag ;
		
	}
	
	/**
	 * 加密
	 * @param 明文 inputText
	 * @return 密文 outputText
	 */
	public String getEncString(String inputText) {
		Cipher cipher = null;
		String outputText = null ;
		try {
			cipher =Cipher.getInstance(CIPHER_ALGORITHM) ;
			cipher.init(Cipher.ENCRYPT_MODE, this.key) ;
			outputText= Base64.encode(cipher.doFinal(inputText.getBytes("UTF8")));
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			cipher= null;
		}
		return outputText;
	}


	/**
	 * 解密
	 * @param 密文 inputText
	 * @return 明文 outputText
	 */
	public String getDesString(String inputText) {
		Cipher cipher = null;
		String outputText = null ;
		try {
			cipher =Cipher.getInstance(CIPHER_ALGORITHM) ;
			cipher.init(Cipher.DECRYPT_MODE, this.key) ;
			outputText= new String(cipher.doFinal(Base64.decode(inputText)));
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			cipher= null;
		}
		return outputText;
	}

}


java在调用Base64后会自动换行,可添加replaceAll("\r","").replaceAll("\n","")
分享到:
评论

相关推荐

    3DES加密java实现

    在Java中,我们可以使用`javax.crypto`包中的`Cipher`类来实现3DES加密和解密。首先,我们需要创建一个`SecretKeySpec`对象,用于存储我们的密钥。密钥长度可以是128位(16字节),但3DES实际只使用其中的112位或168...

    Java实现文件的RSA和DES加密

    Java 实现文件的 RSA 和 DES 加密 在现代密码技术中,根据密钥类型的不同,可以将其分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。对称加密算法用来对敏感数据等信息进行加密,常用的...

    用Java实现的DES加密算法

    本程序是java语言实现的DES加密算法的实例。

    JAVA实现3DES加密解密

    总的来说,通过Java实现3DES加密解密,我们需要理解加密算法的基本原理,熟悉Java的相关加密库,并掌握如何生成和使用密钥。在实际开发中,确保数据的安全性至关重要,因此正确地使用加密技术是每个IT专业人员必备的...

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

    在本示例中,我们将展示如何使用 3DES 算法在 Java 中实现加密和解密操作,并封装 byte 数组和 16 进制字符串之间的互转。 Java 中的 3DES 加密算法 在 Java 中,我们可以使用 javax.crypto 包中的 Cipher 类来...

    java_3des加密源码

    以上就是关于"java_3des加密源码"的相关知识点,这个源码文件应该包含了实现3DES加密和解密功能的核心逻辑,对于理解和使用3DES在Java中进行数据保护非常有帮助。在实际应用中,还需要考虑密钥管理、错误处理和安全...

    用java实现des加密

    在Java中,实现DES加密通常需要使用`javax.crypto`包中的类,如`KeyGenerator`用于生成密钥,`Cipher`用于执行加密和解密操作,以及`SecretKeySpec`用于创建密钥对象。以下是一个简单的Java DES加密的步骤: 1. **...

    JAVA实现DES加密

    总的来说,Java实现DES加密涉及到了对称加密的概念、DES算法的原理、Java的加密API使用,以及Base64编码。理解并掌握这些知识点对于进行数据安全编程至关重要。在编写和使用这类工具类时,应确保密钥管理的安全性,...

    Java 3des加密算法ECB模式

    Java 3des加密算法ECB模式,亲测完美通过。目前网上的大部分算法都通不过或者加进Base64之类的,还要不下载其它jar包。而代码使用时直接下载运行,无须配置和下载额外的jar包 ,只需换上自己的密钥和待加密的数据...

    使用java自带des加密算法实现文件加密和字符串加密

    主要介绍了使用java自带des加密算法实现文件加密和字符串加密的示例,需要的朋友可以参考下

    DES加密算法JAVA实现(带简单界面)

    在实际应用中,DES通常与其他加密技术结合使用,如Triple DES(3DES),它通过执行三次DES加密以增强安全性。此外,现代的加密标准如AES(Advanced Encryption Standard)已经取代了DES,因为其具有更大的密钥长度和...

    java实现DES对称加密

    在Java中,我们通常使用`javax.crypto`包来实现DES加密。以下是一些关键步骤和知识点: 1. 导入必要的库: ```java import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec....

    实现使用3des在页面js加密,后台java解密

    本篇将详细介绍如何在网页前端使用JavaScript进行3DES加密,并在后端Java环境中进行解密。 一、3DES加密原理 3DES是DES的加强版,它使用了3个不同的56位密钥,通过3次独立的DES加密过程来提高安全性。具体流程如下...

    des加密解密java实现版本

    以下是使用Java实现DES加密的步骤: 1. **生成密钥**: 首先,我们需要一个密钥。在Java中,我们使用`KeyGenerator`类生成DES密钥。代码示例: ```java KeyGenerator keyGen = KeyGenerator.getInstance("DES")...

    JAVA中3des加密算法

    在Java中实现3DES加密和解密涉及到以下几个关键点: 1. **密钥生成**:在Java中,你可以使用`java.security.KeyGenerator`类来生成3DES密钥。首先需要实例化一个`KeyGenerator`对象,然后调用`init()`方法初始化它...

    Java实现的DES加密算法

    用Java实现的DES算法,可对文件进行加密解密

    java AES,DES,3DES,RAS,DSA 加密算法实现

    在Java中,可以使用`Cipher.getInstance("DESede/CBC/PKCS5Padding")`进行3DES加密。 4. **RSA( Rivest-Shamir-Adleman)** RSA是一种非对称加密算法,基于大整数因子分解的困难性。它有两个密钥:公钥用于加密,...

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

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

    3DES加密算法C语言实现

    在C语言中实现3DES加密算法,可以确保在不同平台上的兼容性和一致性,尤其对于需要跨平台操作的应用场景,如将C语言代码移植到Android平台,通过JNI接口与Java代码交互,能够很好地解决加解密结果不一致的问题。...

    3des加密 java

    3des加密 java

Global site tag (gtag.js) - Google Analytics