import java.security.*;
import javax.crypto.*;
import sun.misc.*;
/**
* 使用DES加密与解密,可对byte[],String类型进行加密与解密 密文可使用String,byte[]存储. 方法: void
* getKey(String strKey)从strKey的字条生成一个Key String getEncString(String
* strMing)对strMing进行加密,返回String密文 String getDesString(String
* strMi)对strMin进行解密,返回String明文 byte[] getEncCode(byte[] byteS)byte[]型的加密 byte[]
* getDesCode(byte[] byteD)byte[]型的解密
*/
public class Encrypt {
private Key key;
private byte[] byteMi = null;
private byte[] byteMing = null;
private String strMi = "";
private String strM = "";
// 根据参数生成KEY
public void setKey(String strKey) {
try {
KeyGenerator _generator = KeyGenerator.getInstance("DES");
_generator.init(new SecureRandom(strKey.getBytes()));
this.key = _generator.generateKey();
_generator = null;
} catch (Exception e) {
e.printStackTrace();
}
}
// 加密String明文输入,String密文输出
public void setEncString(String strMing) {
BASE64Encoder base64en = new BASE64Encoder();
try {
this.byteMing = strMing.getBytes("UTF8");
this.byteMi = this.getEncCode(this.byteMing);
this.strMi = base64en.encode(this.byteMi);
} catch (Exception e) {
e.printStackTrace();
} finally {
this.byteMing = null;
this.byteMi = null;
}
}
// 加密以byte[]明文输入,byte[]密文输出
private byte[] getEncCode(byte[] byteS) {
byte[] byteFina = null;
Cipher cipher;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byteFina = cipher.doFinal(byteS);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}
// 解密:以String密文输入,String明文输出
public void setDesString(String strMi) {
BASE64Decoder base64De = new BASE64Decoder();
try {
this.byteMi = base64De.decodeBuffer(strMi);
this.byteMing = this.getDesCode(byteMi);
this.strM = new String(byteMing, "UTF8");
} catch (Exception e) {
e.printStackTrace();
} finally {
base64De = null;
byteMing = null;
byteMi = null;
}
}
// 解密以byte[]密文输入,以byte[]明文输出
private byte[] getDesCode(byte[] byteD) {
Cipher cipher;
byte[] byteFina = null;
try {
cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, key);
byteFina = cipher.doFinal(byteD);
} catch (Exception e) {
e.printStackTrace();
} finally {
cipher = null;
}
return byteFina;
}
// 返回加密后的密文strMi
public String getStrMi() {
return strMi;
}
// 返回解密后的明文
public String getStrM() {
return strM;
}
public static void main(String[] args) {
Encrypt pt = new Encrypt();
String key = "06xbc"; // 初始化密钥。
pt.setKey(key); // 调用set函数设置密钥。
pt.setEncString("呵呵哒");// 将要加密的明文传送给Encrypt.java进行加密计算。
String Mi = pt.getStrMi(); // 调用get函数获取加密后密文。
System.out.println(Mi);
pt.setDesString(Mi); // 将要解密的密文传送给Encrypt.java进行解密计算。
String M = pt.getStrM(); // 调用get函数获取解密后明文。
System.out.println(M);
}
}
Encrypt pt = new Encrypt();
String key = "jmcjr2015"; // 初始化密钥。
pt.setKey(key);// 调用set函数设置密钥。
--加密
pt.setEncString("");//对支付串内东西加密
pt.getStrMi();//获得加密后的东西
--解密
pt.setDesString();//对加密的东西解密
pt.getStrM();//获得解密后的原东西
分享到:
相关推荐
Java加密解密工具是开发过程中不可或缺的部分,尤其是在处理敏感数据时,确保数据的安全性至关重要。在Java中,我们可以使用各种库和内置API来实现加密和解密操作。本篇文章将深入探讨Java加密解密的核心概念、常用...
前端加解密 后端加解密 JS加解密 JAVA加解密 前端加解密 后端加解密 JS加解密 JAVA加解密 前端加解密 后端加解密 JS加解密 JAVA加解密 前端加解密 后端加解密 JS加解密 JAVA加解密
Java 加解密技术系列之 HMAC 知识点详解 HMAC(Hash-based Message Authentication Code,散列消息鉴别码)是一种用于验证数据完整性和来源安全性的密码学技术。它结合了哈希函数和密钥,确保只有拥有特定密钥的...
7. **加解密接口**:JCT可能提供了一套统一的API,使得开发者能够方便地调用各种加密算法,而无需深入了解底层实现细节。 8. **文档和源代码**:压缩包中的`jct_doc.zip`可能是JCT工具包的API文档,对于理解和使用...
BouncyCastle,又称BC,是一个开源的Java安全包,提供了广泛的密码学功能,包括但不限于加解密、数字签名、证书管理以及哈希算法。标题提到的"BouncyCastle加解密包15on-1.60"指的是该库的一个特定版本,版本号为...
在Java中,可以利用`javax.crypto`包下的类和接口实现上述算法的加密和解密功能,例如使用`Cipher`类进行加解密操作,`KeyGenerator`和`KeyPairGenerator`类用于生成密钥。 #### 结语 加密技术是维护网络安全的...
在Java编程语言中,加密和解密是网络安全和数据保护的重要组成部分。本教程"JAVA加密解密-3"聚焦于如何在Java环境中实现文件的加密和解密功能。以下是一些核心知识点: 1. **加密的基本概念**:加密是将明文数据...
Java加密解密技术在软件开发中扮演着至关重要的角色,特别是在数据安全领域。3DES(Triple Data Encryption Standard)是一种常见的加密算法,它基于DES(Data Encryption Standard)并对其进行了加强,提高了安全性...
Java加密解密是信息安全领域中的一个关键话题,特别是在软件开发中,它对于保护敏感数据、实现安全通信至关重要。Java提供了一系列强大的加密库和API,使得开发者可以方便地进行数据加密和解密操作。本项目提供的...
Java加密解密程序是软件开发中的一个重要领域,主要用于保护数据的安全性和隐私性。在这个特定的案例中,我们讨论的是一个基于MyEclipse开发的Java应用程序,它实现了凯撒加密法,这是一种古老但基础的加密技术。...
在Java编程环境中,创建一个能够加密和解密ZIP压缩包的项目是一项常见的需求,尤其是在处理敏感数据时。本文将深入探讨如何使用Java实现这一功能,同时也会提及与ActionScript 3(AS3)进行加密解密的相关知识。 ...
一段java语言加密和解密的代码
在Java中,加密和解密操作主要通过`javax.crypto`包提供的类和接口来实现,例如`Cipher`类用于执行加解密操作,`KeyGenerator`用于生成密钥,`SecretKeySpec`和`PKey`(PublicKey, PrivateKey)用于管理密钥等。...
在IT行业中,加密和解密是信息安全领域的重要组成部分,特别是在Java编程中。本文将深入探讨Java中的加密解密技术,并结合提供的资源进行分析。 首先,标题"JAVA加密解密"表明我们将关注Java语言中用于保护数据隐私...
### Java加密解密小程序知识点详解 #### 一、程序概述 本程序是一个基于Java Swing的图形用户界面(GUI)加密解密工具。它允许用户在窗口中输入明文信息,并通过点击“加密”按钮实现对信息的加密处理;加密后的...
本资源包“java 加密解密 软件 c c++ 纯净版”提供了一套与编程语言Java、C和C++相关的加密解密工具和教程,适合进行VC(Visual C++)课程设计。 1. **Java加密解密**:Java提供了丰富的库,如Java Cryptography ...
Java加密解密是信息安全领域的重要组成部分,用于保护数据的安全性和隐私。在Java中,我们可以使用多种加密算法来实现数据的加密和解密。本篇将详细介绍几种常见的加密算法及其在Java中的应用,包括DES、RSA以及非...
Java加密解密是一个重要的安全领域,它涉及到保护数据的隐私和完整性。在Java中,我们可以使用内置的Java Cryptography Extension (JCE) 来实现加密和解密操作。本资源包含源码,使得开发者能够更深入地理解加密解密...
Java作为一种广泛应用的编程语言,提供了丰富的库和API来实现加解密操作。本压缩包包含了一个使用Java编写的加解密程序,让我们深入探讨一下其中涉及到的知识点。 1. **Java Cryptography Architecture (JCA)**: ...