资源简介
发送方:
1.获取发送的原文
2.利用系统的随机数产生对称密钥
3.计算原文的摘要
4.用自己的私钥对摘要进行加密(签名)
5.用对称密钥对(原文和签名)进行加密
6.用对方的公钥对称密钥进行加密(加密密钥)
7.将密文(5)和加密密钥(6)一起发给对方
接收方:
1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能解密。
2.用对称密钥对密文进行解密,得到原文和签名。
3.计算原文的摘要
4.用对方的公钥对签名进行解密获取发送来的摘要--身份验证
5.将两个摘要进行对比--验证原文的完整性。
1.获取发送的原文
2.利用系统的随机数产生对称密钥
3.计算原文的摘要
4.用自己的私钥对摘要进行加密(签名)
5.用对称密钥对(原文和签名)进行加密
6.用对方的公钥对称密钥进行加密(加密密钥)
7.将密文(5)和加密密钥(6)一起发给对方
接收方:
1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能解密。
2.用对称密钥对密文进行解密,得到原文和签名。
3.计算原文的摘要
4.用对方的公钥对签名进行解密获取发送来的摘要--身份验证
5.将两个摘要进行对比--验证原文的完整性。

代码片段和文件信息
package com.cn.sec.rsa;
import java.io.UnsupportedEncodingException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.SecretKeySpec;
public class AES {
/**
* 加密
*
* @param content
* 需要加密的内容
* @param password
* 加密密码
* @return
*/
public static byte[] encrypt(byte[] data byte[] key) {
CheckUtils.notEmpty(data “data“);
CheckUtils.notEmpty(key “key“);
if(key.length!=16){
throw new RuntimeException(“Invalid AES key length (must be 16 bytes)“);
}
try {
SecretKeySpec secretKey = new SecretKeySpec(key “AES“);
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec seckey = new SecretKeySpec(enCodeFormat“AES“);
Cipher cipher = Cipher.getInstance(ConfigureEncryptAndDecrypt.AES_ALGORITHM);// 创建密码器
cipher.init(Cipher.ENCRYPT_MODE seckey);// 初始化
byte[] result = cipher.doFinal(data);
return result; // 加密
} catch (Exception e){
throw new RuntimeException(“encrypt fail!“ e);
}
}
/**
* 解密
*
* @param content
* 待解密内容
* @param password
* 解密密钥
* @return
*/
public static byte[] decrypt(byte[] data byte[] key) {
CheckUtils.notEmpty(data “data“);
CheckUtils.notEmpty(key “key“);
if(key.length!=16){
throw new RuntimeException(“Invalid AES key length (must be 16 bytes)“);
}
try {
SecretKeySpec secretKey = new SecretKeySpec(key “AES“);
byte[] enCodeFormat = secretKey.getEncoded();
SecretKeySpec seckey = new SecretKeySpec(enCodeFormat “AES“);
Cipher cipher = Cipher.getInstance(ConfigureEncryptAndDecrypt.AES_ALGORITHM);// 创建密码器
cipher.init(Cipher.DECRYPT_MODE seckey);// 初始化
byte[] result = cipher.doFinal(data);
return result; // 加密
} catch (Exception e){
throw new RuntimeException(“decrypt fail!“ e);
}
}
public static String encryptTobase64(String data String key){
try {
byte[] valueByte = encrypt(data.getBytes(ConfigureEncryptAndDecrypt.CHAR_ENCODING) key.getBytes(ConfigureEncryptAndDecrypt.CHAR_ENCODING));
return new String(base64.encode(valueByte));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(“encrypt fail!“ e);
}
}
public static String decryptFrombase64(String data String key){
try {
byte[] originalData = base64.decode(data.getBytes());
byte[] valueByte = decrypt(originalData key.getBytes(ConfigureEncryptAndDecrypt.CHAR_ENCODING));
return new String(valueByte ConfigureEncryptAndDecrypt.CHAR_ENCODING);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(“decrypt fail!“ e);
}
}
public static String encryptWithKeybase64(String data String key){
try {
byte[] valueByte = encrypt(data.getBytes(ConfigureEncryptAndDecrypt.CHAR_ENCODING) base64.decode(key.getBytes()));
return new String(base64.encode(valueByte));
} catch (UnsupportedEncodingEx
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 421 2016-04-21 17:32 encryption\.classpath
文件 386 2016-04-21 17:28 encryption\.project
文件 598 2016-04-21 17:28 encryption\.settings\org.eclipse.jdt.core.prefs
文件 3628 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\AES.class
文件 7960 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\ba
文件 1825 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\Che001SignUtil.class
文件 1424 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\CheckUtils.class
文件 529 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\ConfigureEncryptAndDecrypt.class
文件 9800 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\ConvertUtils.class
文件 3888 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\Digest.class
文件 2075 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\EncryptionUtil.class
文件 620 2016-04-21 17:33 encryption\bin\com\cn\sec\rsa\EncryUtil$1.class
文件 4262 2016-04-21 17:33 encryption\bin\com\cn\sec\rsa\EncryUtil.class
文件 1065 2016-04-21 17:32 encryption\bin\com\cn\sec\rsa\RandomUtil.class
文件 5227 2016-05-23 11:36 encryption\bin\com\cn\sec\rsa\RSA.class
文件 2854 2016-05-23 11:27 encryption\bin\com\cn\sec\test\A.class
文件 622 2016-05-23 11:24 encryption\bin\com\cn\sec\test\B$1.class
文件 3457 2016-05-23 11:24 encryption\bin\com\cn\sec\test\B.class
文件 1263 2016-05-23 11:00 encryption\bin\com\cn\sec\test\KeyGenerator.class
文件 279193 2014-03-24 09:50 encryption\bin\commons-lang-2.5.jar
文件 295771 2014-03-24 09:50 encryption\bin\fastjson-1.1.8.jar
文件 124932 2014-03-24 09:50 encryption\bin\json-lib-2.1-jdk15.jar
文件 4069 2016-04-21 17:30 encryption\src\com\cn\sec\rsa\AES.java
文件 20565 2016-04-21 17:30 encryption\src\com\cn\sec\rsa\ba
文件 1161 2016-04-21 17:32 encryption\src\com\cn\sec\rsa\Che001SignUtil.java
文件 1139 2016-04-21 17:30 encryption\src\com\cn\sec\rsa\CheckUtils.java
文件 259 2016-04-21 17:30 encryption\src\com\cn\sec\rsa\ConfigureEncryptAndDecrypt.java
文件 10374 2016-04-21 17:30 encryption\src\com\cn\sec\rsa\ConvertUtils.java
文件 4162 2016-04-21 17:30 encryption\src\com\cn\sec\rsa\Digest.java
文件 1728 2016-04-21 17:30 encryption\src\com\cn\sec\rsa\EncryptionUtil.java
............此处省略26个文件信息
相关资源
- The direction of synaptic plasticity mediated
- C 大整数RSA加密
- DXperienceUniversal 10.1.6(2010年8月13日版
- RSA算法源码
- RSA AES DES ECC加密算法源码
- 数据包络分析软件DEAP2.1
- 易语言RSA加解密源码
- Anti-biofilm Activity of Resveratrol and Ursol
- IBM Rational Software Architect 9.0破解文件
- Universal Extractor(万能文件解包工具)
- DXperienceUniversal-11.1.7.part06
- DXperienceUniversal-11.1.7.part08
- DXperienceUniversal-11.1.7.part14
- DXperienceUniversal-11.1.7.part15
- DXperienceUniversal-11.1.7.part10
- DXperienceUniversal-11.1.7.part13
- DXperienceUniversal-11.1.7.part03
- DXperienceUniversal-11.1.7.part02
- DXperienceUniversal-11.1.7.part09
- DXperienceUniversal-11.1.7.part19
- DXperienceUniversal-11.1.7.part12
- DXperienceUniversal-11.1.7.part18
- DXperienceUniversal-11.1.7.part16
- DXperienceUniversal-11.1.7.part20
- DXperienceUniversal-11.1.7.part07
- DXperienceUniversal-11.1.7.part17
- DXperienceUniversal-11.1.7.part04
- eclipse、idea代码模板
- IBM 2U Universal Tape Autoloader产品手册
- IBM 4U Universal Tape Library产品手册
评论
共有 条评论