关于RSA与AES加密解密个人理解
2017-04-19 15:40
459 查看
RSA:
非对称加密方式,分公钥、私钥;在移动开发中:公钥置于移动端,私钥置于服务端。
当移动端向服务端传输重要数据的时候,可以用公钥对数据进行加密再传输;到服务端,服务端使用私钥对该加密过的数据进行解密,获得对应数据。反之,服务端通过私钥对要传输的数据加密,移动端获得加密后的数据通过公钥解密获得对应数据。
AES:
AES对称加密方式,只有密钥。
移动端通过该密钥加密,服务端通过该密钥解密。单纯的通过AES加密解密在数据传输时候是有风险的。通过RSA+AES混合加密可以使数据传输更安全些。具体:
移动端生成AES密钥,将要传输的数据通过AES加密后上传到服务端,同时将该密钥用RSA公钥加密并上传到服务端;在服务端获得通过RSA公钥加密后的AES密钥和通过AES密钥加密后的数据,用RSA私钥解密得到正确的AES密钥,使用AES密钥对数据源解密,获取明文数据。
具体代码参考:http://blog.csdn.net/chay_chan/article/details/58605605
关于两者效率问题:
RSA:解密速度随加密文件大小呈线性增长,远远低于加密速度
AES:加密后的文件大小两倍于源文件,解密速度两倍于加密速度,当文件过大时可能会对内存造成影响,需要另行处理(过百兆后)
具体实例分析,参考:http://blog.csdn.net/blue1244/article/details/41790705
非对称加密方式,分公钥、私钥;在移动开发中:公钥置于移动端,私钥置于服务端。
当移动端向服务端传输重要数据的时候,可以用公钥对数据进行加密再传输;到服务端,服务端使用私钥对该加密过的数据进行解密,获得对应数据。反之,服务端通过私钥对要传输的数据加密,移动端获得加密后的数据通过公钥解密获得对应数据。
AES:
AES对称加密方式,只有密钥。
移动端通过该密钥加密,服务端通过该密钥解密。单纯的通过AES加密解密在数据传输时候是有风险的。通过RSA+AES混合加密可以使数据传输更安全些。具体:
移动端生成AES密钥,将要传输的数据通过AES加密后上传到服务端,同时将该密钥用RSA公钥加密并上传到服务端;在服务端获得通过RSA公钥加密后的AES密钥和通过AES密钥加密后的数据,用RSA私钥解密得到正确的AES密钥,使用AES密钥对数据源解密,获取明文数据。
具体代码参考:http://blog.csdn.net/chay_chan/article/details/58605605
关于两者效率问题:
RSA:解密速度随加密文件大小呈线性增长,远远低于加密速度
AES:加密后的文件大小两倍于源文件,解密速度两倍于加密速度,当文件过大时可能会对内存造成影响,需要另行处理(过百兆后)
具体实例分析,参考:http://blog.csdn.net/blue1244/article/details/41790705
相关文章推荐
- Android和IOS关于RSA加密以及服务端解密的研究实现
- DES、AES、RSA加密解密
- 关于JAVA中RSA加签解签,私钥加密公钥解密和公钥加密私钥解密代码详解
- Java对称与非对称加密解密,AES与RSA
- PHP 服务端 和 APP 客户端 实现 RSA+AES 双向加密解密
- Java对称与非对称加密解密,AES与RSA
- 关于iOS中AES加密和base64编码的理解
- 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用
- 自己写的AES和RSA加密解密工具
- 关于AES在Linux下加密解密出错问题解决方案
- polarssl rsa & aes 加密与解密
- js的RSA和AES加密解密
- 关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
- python实现aes加密解密,RSA签名和验签,RSA加密解密,并调用接口
- RSA(非对称)压缩加密/解压缩解密||AES(对称)压缩加密/解压缩解密
- 关于算法中“RSA”,“数字签名”等名词的解释和个人理解
- 关于openssl rsa php c++ js 协同加密解密的一些资源链接
- 关于Android中使用AES加密解密的问题
- Java对称与非对称加密解密,AES与RSA
- RSA AES 前端JS与后台JAVA的加密解密的是实现