package com;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class DES {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
KeyGenerator kg = KeyGenerator.getInstance("DESede"); //获取密匙生成器
SecretKey key = kg.generateKey(); //生成密匙,可用多种方法来保存密匙
Cipher cp = Cipher.getInstance("DESede"); //创建密码器
cp.init(Cipher.ENCRYPT_MODE, key); //初始化 第一个参数:为1时为加密,为2时为解密
String str = "DESede对称密码体系";
byte [] ptext = str.getBytes("GBK");
byte [] ctext = cp.doFinal(ptext);//加密
System.out.println("密钥是:"+new String(key.getEncoded(),"GBK"));
System.out.println("密文是:"+new String(ctext,"GBK"));
cp.init(Cipher.DECRYPT_MODE, key); //初始化 第一个参数:为1时为加密,为2时为解密
byte [] mtext = cp.doFinal(ctext); //解密
String result = new String(mtext, "GBK");
System.out.println("明文是:"+result);
}catch(Exception e){
e.printStackTrace();
}
}
}
package com;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import javax.crypto.Cipher;
public class RSA {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); //创建‘密匙对’生成器
KeyPair kp = kpg.genKeyPair();
PublicKey public_key = kp.getPublic(); //获得公匙
PrivateKey private_key = kp.getPrivate(); //获得私匙
Cipher cp = Cipher.getInstance("RSA"); //创建密码器
cp.init(Cipher.ENCRYPT_MODE, public_key); //初始化 第一个参数:为1时为加密,为2时为解密
String str = "RSA非对称密码体系";
byte [] ptext = str.getBytes("GBK");
byte [] ctext = cp.doFinal(ptext); //加密
cp.init(Cipher.DECRYPT_MODE, private_key); //初始化 第一个参数:为1时为加密,为2时为解密
byte [] mtext = cp.doFinal(ctext); //解密
System.out.println("公钥是:"+new String(public_key.getEncoded(),"GBK"));
System.out.println("私钥是:"+new String(private_key.getEncoded(),"GBK"));
System.out.println("秘文是:"+new String(ctext,"GBK"));
String result = new String(mtext, "GBK");
System.out.println("明文是:"+result);
}catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
总结来说,"Java密码学对称加密Demo"涵盖了Java环境中使用对称加密算法进行数据安全传输的基础知识,包括JCA的使用、密钥生成、加密解密流程,以及可能涉及的块加密概念。这个Demo对于理解Java密码学和信息安全有...
在本非对称加密Demo中,我们重点探讨的是如何在Java环境中实现这一技术,并且涉及了秘钥文件的生成以及字符转换秘钥的方法。 首先,非对称加密的基本原理是:公钥用于加密数据,而私钥用于解密数据。这样,即使公钥...
本示例"Java-Js双向Des对称加密Demo"提供了在Java和JavaScript两个平台间实现DES加密解密的互操作性。下面将详细阐述DES加密解密的核心原理、Java和JavaScript的实现细节以及如何在两者之间进行兼容。 DES是一种块...
总结,"C#对称加密和非对称加密的Demo"涵盖了C#编程中的重要安全技术。通过对`TdesEncryptExample`和`RsaEncryptExample`代码的学习,开发者可以深入理解这两种加密机制,并在自己的项目中灵活运用,提升数据的安全...
java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...
**Vue版本的AES加密DEMO** Vue.js 是一个用于构建用户界面的渐进式框架,其核心库专注于视图层,易于上手且功能强大。在Vue项目中,实现AES加密通常需要借助外部库,如`CryptoJS`,这是一个JavaScript实现的各种...
在本文中,我们将深入探讨RSA算法的工作原理、实现步骤,并结合给定的"rsa_demo"项目,了解如何在实际开发环境中运用RSA进行非对称加密。 RSA的核心概念包括公钥和私钥。公钥可以公开,用于加密信息,而私钥必须...
在这个“根据BASE64Decoder的对称加密的demo”中,我们将探讨如何利用Base64编码和对称加密技术进行数据的安全传输。 Base64是一种将二进制数据转换为可打印ASCII字符的编码方式,常用于电子邮件系统和网络传输,...
非对称加密如RSA适合于小量数据加密,而大量的数据更适合使用对称加密(如AES)。哈希算法如MD5、SHA256和SHA512则用于数据完整性校验和密码存储(通常配合盐值)。 总之,Java加密技术是保护数据安全的关键工具,...
在这个压缩包文件中,我们可以看到一个关于OpenSSL的测试项目,用于演示对称加密、非对称加密和数字签名的用法。接下来,我们将详细探讨这些概念及其在C++中的实现。 首先,对称加密是一种简单而快速的加密方式,它...
标题 "简单AES加密demo" 涉及到的是一个关于数据加密的示例,主要使用了AES(Advanced Encryption Standard)算法。AES是一种广泛使用的对称密钥加密标准,它为电子数据提供了高度的安全保障。在描述中提到,这个...
RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,是现代密码学的基石之一。这种加密方式使用了一对密钥,即公钥和私钥,使得信息的加密和解密过程可以独立进行。在RSA算法中,...
在这个"android jni 加密demo"中,开发者使用JNI来实现多种加密算法,包括RSA、3DES、AES、MD5以及BASE64,这些都是信息安全领域常用的加密和哈希方法。以下是对这些技术的详细解释: 1. **RSA**:RSA是一种非对称...
### 使用.NET非对称加密算法实例 #### 一、引言 非对称加密是一种重要的加密方式,在现代信息安全领域有着广泛的应用。与对称加密不同的是,非对称加密使用一对密钥:公钥和私钥。公钥可以公开分发,而私钥则必须...
本文将深入探讨基于AES(Advanced Encryption Standard)的加密插件,这是一个广泛应用于前端和后端的对称加密标准。AES-example-master项目是一个实例,它演示了如何在JavaScript和Java之间进行加密和解密操作,...
RSA是一种非对称加密算法,它的特点是拥有两个密钥:公钥和私钥,分别用于加密和解密。 在这个"C# RSA加密DEMO"中,我们主要关注如何在C#环境中使用RSA加密。首先,我们需要理解RSA的基本工作原理。RSA基于大数因子...
RSA加密解密是一种广泛应用于网络安全领域的非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种算法基于大素数的因式分解难题,使得只有拥有正确密钥的人才能解密信息,...
在"RSA非对称加密验签参考demo"中,私钥用于加密数据,确保只有持有对应私钥的人才能解密信息,从而实现数据的安全交互。公钥则用于解密由私钥加密的数据,这样即使数据在传输过程中被截取,也无法被未经授权的第三...
在SQL Server 2005和2008版本中,对称加密是数据库安全领域一个重要的技术。本文将详细探讨使用证书与不使用证书来进行对称加密的方法,以及如何对存储过程进行加密。 ### 一、使用证书进行对称加密 首先来看使用...
"臻识摄像机加密Demo"是一个专注于视频监控领域安全性的软件示例,主要涉及的是VzPlate解密功能。在IT行业中,摄像机加密是非常重要的一环,它确保了视频数据在传输和存储过程中的隐私性和完整性。VzPlate Decrypt ...