资源简介
发送方:
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个文件信息
相关资源
- mac idea mybatis plugins
- Benchmarking with DEA SFA and R
- 音质发烧友最爱 公认最强 音效增强插
- Mathematical Statistics: Basic Ideas and Selec
- 非常基础的DEA模型介绍和案例
- DEA分析软件MYDEA1.0
- c3750e-universalk9-tar.122-55.SE13
- what is mathematics An Elementary Approach to
- c3560e-universalk9-mz.122-55.SE5.bin
- Git-2.21.0-64-bit 安装包及安装说明 ide
- Maven+SpringMVC+Mybatis的增删改查Demo
- AIRSAR_Flevoland.zip
- RSA签名验签工具
- OpenGL.Superbible.7th.Edition(pdfandsourceco
- SSH-demo IDEA开发工具 学生管理系统
- Frontier Analyst DEA分析软件
- DXperienceUniversal 9.3.3 part122010年2月1日版
- DXperienceUniversal 9.3.3 part112010年2月1日版
- DXperienceUniversal 9.3.3 part102010年2月1日版
- DXperienceUniversal 9.3.3 part92010年2月1日版
- DXperienceUniversal 9.3.3 part82010年2月1日版
- DXperienceUniversal 9.3.3 part72010年2月1日版
- DXperienceUniversal 9.3.3 part62010年2月1日版
- DXperienceUniversal 9.3.3 part52010年2月1日版
- DXperienceUniversal 9.3.3 part42010年2月1日版
- DXperienceUniversal 9.3.3 part22010年2月1日版
- JBOA项目,办公管理软件
- IntelliJ IDEA版的ssm整合开发简单crm管理
- idea实现SSM+bootstrap包换部分缓存及菜单
- MedeA基本操作
评论
共有 条评论