24、AES RSA加密处理记录

一、加密过程解释

前提:发送方为A,接受方为B
牢记:RSA为非对称加密,AES为对称加密。对称加密,属于传统的加密技术,加密和解密的秘钥都是相同的,AES的秘钥长度有128、192、256三种。非对称加密属于现加密技术,加密和解密的秘钥是不同的,一个是公钥,一个是私钥,常用于数字签名和加密秘钥。

1、B产生RSA密钥,并将对应的RSA公钥发给A
2、A得到RSA公钥;随机产生一个AES密钥;使用RSA公钥和RSA算法对AES密钥进行加密,并写入文件头部;用AES密钥和AES算法加密数据,写入文件尾部;将数据发给B
3、B收到数据,使用RSA密钥和RSA解密算法,解密头部,得到AES密钥;使用AES密钥和AES算法解密剩余数据。

二、代码实现

1、RSA加密

 1 String mingwen = "哈哈 加密也就那回事嘛";
 2
 3
 4
 5         byte[] private_key;
 6
 7         byte[] private_key_encode=null ;
 8
 9         byte[] mingwen_encrypt=null;;
10
11         byte[] mingwen_encrypt_encode=null;
12
13
14
15         try {
16
17             RSAUtil rsaUtil = RSAUtil.createRSAUtilWithRandomKeys();
18
19
20
21
22
23             //加密后的私钥
24
25             private_key = rsaUtil.getPrivateKeyBytes();
26
27             private_key_encode = Base64.encode(private_key, 1);
28
29
30
31             //经过rsa和base64加密后的数据
32
33             mingwen_encrypt = rsaUtil.encrypt(mingwen.getBytes());
34
35             mingwen_encrypt_encode = Base64.encode(mingwen_encrypt, 1);
36
37
38
39         } catch (Exception e2) {
40
41             // TODO Auto-generated catch block
42
43             e2.printStackTrace();
44
45         }
46
47
48
49          try {
50
51             //rsaUtil.genKeyPair();
52
53         } catch (Exception e1) {
54
55             // TODO Auto-generated catch block
56
57             e1.printStackTrace();
58
59         }

2、RSA解密

 1    //对RSA私钥进行BASE64解码
 2
 3             byte[] private_key_1 =Base64.decode( private_key_encode,1);
 4
 5                         //产生RSAUtil的实例
 6
 7                         RSAUtil rsaUtil_1 = new RSAUtil(null, private_key_1, null);
 8
 9
10                         //将密文进行BASE64解密
11
12                         byte[]  miwen_encrypt = Base64.decode(mingwen_encrypt_encode, 1);
13
14
15                         //将密文进RSA解密
16
17             byte[]  miwen= rsaUtil_1.decrypt(miwen_encrypt);
18
19
20
21             try {
22
23                 Log.e(tag,"mingwen is "+new String(miwen, "utf-8"));
24
25
26
27             } catch (UnsupportedEncodingException e) {
28
29                 // TODO Auto-generated catch block
30
31                 e.printStackTrace();
32
33             }

3、AES解密

 1 //创建AES实例
 2
 3         AESUtil aesUtil = new AESUtil("1234567812345678".getBytes());
 4
 5
 6
 7         //Base64解码 说明:里边的参数为首先经过AES加密,然后BASE64
 8
 9         byte[] encData = Base64.decode("oO7khHummGsw6dFPKu83C8blEjdVUDbhf2ii4c0ET5HoOIL5kClQR7gj/rP04fSj", 0);
10
11
12
13         //AES解码
14
15         byte[] decData = aesUtil.decrypt(encData);
16
17
18
19         try {
20
21             mMarque.setText(new String(decData, "utf-8"));
22
23         } catch (UnsupportedEncodingException e) {
24
25             e.printStackTrace();
26
27             mMarque.setText(e.getMessage());
28
29         }*/

时间: 2024-08-26 01:58:58

24、AES RSA加密处理记录的相关文章

Js实现AES/RSA加密

1. function aesEncrypt(text, secKey) {     var key = CryptoJS.enc.Utf8.parse(secKey);     var iv = CryptoJS.enc.Utf8.parse("0102030405060708");     var srcs = CryptoJS.enc.Utf8.parse(text);     var encrypted = CryptoJS.AES.encrypt(srcs, key, {  

我的Android进阶之旅------>Android采用AES+RSA的加密机制对http请求进行加密

前言 未加密的抓包截图 加密之后的抓包截图 基本需求及概念 AES算法 AES基本原理及算法流程 AES算法流程 RSA算法 RSA算法基本原理及流程 RSA算法实现流程 AES与RSA相结合数据加密方案 Android端 AESRSA结合实践 基本要求 基本流程 Android端 服务器端 java版示例 更多参考 前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fidd

.Net AES、RSA 加密解密

2019就这样过完了,好像还有很多事情没来得及做,然后就过去了,整的还有很多遗憾,把握住2020的每一天时间吧,望你们的2020年不要浑浑噩噩,要忙忙碌碌.基础.学习.创新.记录.总结.生活都要前进向前看.过程重要结果更重要,不希望N年之后想想之前怎么不努力,薪水怎么不加,这些都是有原因的, 机遇都是给准备着的人的,总感觉这句话有问题,我时刻都准备着呢,机遇咋就是不给我,证明我还是不够努力不够上进呗.加油吧 小姑娘你的人生还很长,驾照还没考,更好的美食还没吃,薪水还没加,钱包还没满,世界各地去的

Android接口安全 - RSA+AES混合加密方案

转载请注明出处: http://blog.csdn.net/aa464971/article/details/51034462 本文以Androidclient加密提交数据到Java服务端后进行解密为样例. 生成RSA公钥和密钥的方法请參考: http://blog.csdn.net/aa464971/article/details/51035200 Android端的加密思路须要4步: 1.生成AES密钥: 2.使用RSA公钥加密刚刚生成的AES密钥: 3.再使用第1步生成的AES密钥,通过A

项目记录:登陆( 保存用户名密码 kaptcha验证码 shiro权限管理 RSA加密 非明文保存)

1.登陆页代码 1)引入js <script type="text/javascript" src="${base}/resources/admin/js/jquery.js"></script> <script type="text/javascript" src="${base}/resources/admin/js/jquery.validate.js"></script>

AES加密解密,自定义加密规则记录

package com.jx.utlis; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Scanner; impor

APP安全--网络传输安全 AES/RSA/ECC/MD5/SHA

移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全.所以当我们谈论App安全问题的时候一般来说在以下三类范畴当中. App代码安全,包括代码混淆,加密或者app加壳. App数据存储安全,主要指在磁盘做数据持久化的时候所做的加密. App网络传输安全,指对数据从客户端传输到Server中间过程的加密,防止网络世界当中其他节点对数据的窃听. 这一篇我们先聊下网络传输的安全. 安全相关的基础概念

Jmeter_前端RSA加密下的登陆模拟_引用js文件实现

在一次项目实战中,前端登录使用了RSA加密,使用LoadRunner压测的第一步,就是模拟用户登录,可惜loadRunner11并不能录制前端的加密过程,并且安装的LR是基于C语言版,网络上关于RSA的加密更多的是Java版,最后,选择在Jmeter中先尝试一下能否解决加密的问题,毕竟它有很多处理器,用于脚本的插入: 把解决过程中遇到的问题,简单做个记录,防止遗忘,也算是给自己下一次项目一个经验总结了: [1]了解加密方式-----RSA 询问开发前端的加密方式:先请求public_key,再加

java RSA加密生成license,用CPU序列号生成机器码

? license里就是一些注册信息,键值对组成的字符串 ? 对称加密: DES,AES,加密解密都用一个秘钥,速度快 非对称机密 RSA,可以私钥加密公钥解密,也可以公钥机密私钥解密,速度慢 注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行.RSA加密对明文的长度是有限制的,如果加密数据过大会抛出异常: ? 常见加密算法 DES? ??? DES是Data Encryption Standard(数据加密标准)的缩写,DES算法为密