/**
* 私钥加密的对称算法
*
* @author yajun.wuyj
*/
public class PrivateExample {
public static void main(String[] args) throws Exception {
String text = "世界平衡";
byte[] plainText = text.getBytes("UTF8");
//通过KeyGenerator形成一个key
System.out.println("\nStart generate AES key");
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128);
Key key = keyGen.generateKey();
System.out.println("Finish generating DES key");
//获得一个私鈅加密类Cipher,ECB是加密方式,PKCS5Padding是填充方法
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
System.out.println("\n" + cipher.getProvider().getInfo());
//使用私鈅加密
System.out.println("\nStart encryption:");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cipherText = cipher.doFinal(plainText);
System.out.println("Finish encryption:");
System.out.println(new String(cipherText, "UTF8"));
System.out.println("\nStart decryption:");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] newPlainText = cipher.doFinal(cipherText);
System.out.println("Finish decryption:");
System.out.println(new String(newPlainText, "UTF8"));
}
}
其中KeyGenerator是专门生成密钥的类。区别于KeyPairGenerator生成的是密钥对。
通过他的getInstance可以获取如下的算法需要的Key。
KeyGenerator
The following algorithm names can be specified when requesting an instance of KeyGenerator
:
-
AES
-
ARCFOUR/RC4
-
Blowfish
-
DES
-
DESede
-
HmacMD5
-
HmacSHA1
-
HmacSHA256
-
HmacSHA384
-
HmacSHA512
-
RC2
Cipher.getInstance() 参数可以用一下形式的参数
- "algorithm/mode/padding"
- "algorithm"
mode 模式详见:http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html
或者官方一点的:http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
padding 填充模式详见:http://www.cnblogs.com/midea0978/articles/1437257.html
具体所有已经可以用的algorithm详见官方网站:
http://java.sun.com/javase/6/docs/technotes/guides/security/SunProviders.html
分享到:
相关推荐
在Java平台上,有多种内置的加密库,如Java Cryptography Extension (JCE) 和 Java Cryptography Architecture (JCA),它们为开发者提供了丰富的加密工具和算法。下面将详细讨论几种经典的Java加密算法。 1. 对称...
DES使用56位密钥加密64位明文,输出64位密文。尽管DES在历史上曾经被穷举攻击成功破解,但在Java环境中,鉴于其强大的安全性和网络处理能力,IDEA加密算法成为了更优的选择。 #### 三、IDEA数据加密算法 ##### 3.1...
Java中的加密算法是保障信息安全的关键技术,涉及到对称加密、非对称加密、哈希函数以及数字签名等多种方法。在日常生活中,无论是个人还是企业,都需要处理大量的敏感数据,如个人信息、财务信息和商业机密。加密...
1. JCA与JCE:Java Cryptography Architecture提供了接口和框架,用于实现各种加密算法,而Java Cryptography Extension则提供了一些高级加密服务,包括非对称加密、对称加密、哈希函数和消息认证码等。 2. 对称...
1. RSA算法:非对称加密算法,由两个密钥组成——公钥和私钥。公钥用于加密,私钥用于解密。这种方式常用于安全通信,如HTTPS协议。 2. AES算法:高级加密标准,对称加密算法,速度快,适用于大量数据的加密。AES有...
- RSA是一种非对称加密算法,它基于两个密钥——公钥和私钥,公钥用于加密,私钥用于解密。 - `java.security.KeyPairGenerator`用于生成密钥对,`Cipher`类处理加密和解密操作。 - RSA常用于数据的完整性保护和...
2)Java Cryptography Architecture (JCA): 用于实现对称加密算法(如AES)和SHA-256哈希算法等,提供主流密码学算法的支持。 支持的数据类型 系统支持以下文件类型的加密和解密: 1)文本文件(.txt): 对文本内容...
Java通过JCA提供了一整套加密框架,它包含JCE(Java Cryptography Extension)和JSSE(Java Secure Socket Extension)。JCE提供加密、解密、消息摘要等功能,JSSE则负责SSL/TLS协议,实现安全网络通信。 3. Java...
- **混合加密算法**:结合对称加密与非对称加密的优点,使用非对称加密传输对称加密的密钥,之后使用对称加密进行数据加密,既保证了安全性又提高了效率。 ##### 2. 数字签名技术 - **基本原理**:通过使用发送方...
总的来说,这个"RSA公共类.zip"提供的类库是实现RSA加密解密功能的基础组件,对于理解RSA算法以及在Java项目中安全地使用非对称加密非常有帮助。开发者可以将这些类集成到他们的系统中,以确保数据在传输或存储时的...
JCA是Java平台的一部分,提供了一组接口和类来实现各种加密操作,包括对称加密、非对称加密、消息摘要和数字签名等。JCE是JCA的扩展,提供了更强大的加密功能,支持更高级别的密钥长度,这对于商业和政府级别的安全...
- **加密**:包括对称加密(如AES)和非对称加密(如RSA),用于保护数据的机密性。 - **消息认证码(MAC)**:用于验证数据完整性,防止篡改。 - **数字签名**:利用非对称加密技术确保数据的来源可验证和完整性...
JCE则提供了更高级别的加密功能,包括非对称加密和哈希算法。使用这些工具,开发者可以实现数据的加密存储、传输,以及校验数据完整性,防止数据被篡改。 此外,项目可能还涉及到了Java的Secure Socket Layer/...
2. **加密算法**:JCE支持多种加密算法,如对称加密(AES、DES、3DES)、非对称加密(RSA、DSA、ECC)、哈希算法(MD5、SHA-1、SHA-256)以及消息认证码(HMAC)等。 3. **密钥管理**:JCE提供了KeyGenerator和...
1. 源代码文件:用于实现RSA算法的Java类,可能包括密钥生成、加密、解密、签名和验证的方法。 2. 示例数据:可能有一些测试用的数据,用于演示加密和解密的效果。 3. 测试脚本:用于验证算法正确性的自动化测试代码...
8. **Java Cryptography Architecture (JCA)**:这是Java平台提供的一个框架,用于支持各种加密算法和服务,包括密钥生成、加密、解密、签名、认证等。 9. **Java Cryptography Extension (JCE)**:JCE是Java平台的...
2. **Java加密API(JCA)**:Java提供了丰富的加密库,如Java Cryptography Extension (JCE) 和 Java Cryptography Architecture (JCA),支持各种加密算法,包括RSA。开发者可以通过`java.security.KeyPairGenerator...
在Java中实现VIC编码和解码,意味着开发者可能使用了Java提供的加密库,如Java Cryptography Extension (JCE) 或者Java Cryptography Architecture (JCA),来执行这些操作。 【描述】提到"维也纳国际中心",这可能...
描述中提到的“JLA的使用”,可能是对Java Cryptography Architecture (JCA)或Java Cryptography Extension (JCE)的简称,这两个是Java平台提供的用于加密操作的核心框架。JCA提供了各种加密服务,如密码算法、密钥...
2. **非对称加密**:非对称加密使用一对密钥——公钥和私钥。信息可以用公钥加密,然后用私钥解密,反之亦然。RSA和ECC(椭圆曲线加密)是非对称加密的两个重要例子。这种加密方式在安全通信中至关重要,如HTTPS协议...