前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AES加密和RSA加密

AES加密和RSA加密

作者头像
epoos
发布2022-06-06 15:44:18
2.2K0
发布2022-06-06 15:44:18
举报
文章被收录于专栏:epoos.comepoos.com

最近项目需要用到前端加密,某些特定的数据需要前端加密之后再传输到后端,然后后端再按照与前端约定好的方式进行解密。

因此,在做项目的过程中也大概了解了一下常见的加密方式。

加密算法分为单向加密和双向加密。 单向加密包括MD5,SHA加密算法等等。单向加密算法是不可逆的,也就是无法将加密后的数据恢复成原始数据,除非采取碰撞攻击和穷举的方式。 像是银行账户密码的存储,一般采用的就是单向加密的方式。 双向加密是可逆的,存在密文的密钥,持有密文的一方可以根据密钥解密得到原始明文,一般用于发送方和接收方都能通过密钥获取明文的情况。 双向加密包括对称加密和非对称加密。对称加密包括DES加密,AES加密等等,本文档介绍的主要是AES加密。而非对称加密包括RSA加密,ECC加密。

RSA加密

RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。 其加密过程是:

代码语言:javascript
复制
1、生成一对公私钥
2、使用其中的公钥对需要加密的字符串进行加密
3、使用私钥对加密后的数据进行解密

其中的关键在于私钥的保密性,利用公钥加密的数据只能公共唯一的私钥才能解密。

DEMO

https://www.epoos.com/demo/jsencrypt/rsa-demo.html

AES加密

AES简介 高级加密标准(AES,Advanced Encryption Standard)为最常见的#对称加密#算法(微信小程序加密传输就是用这个加密算法的)。 AES加密(Advanced Encryption Standard,AES),又称 高级加密标准,AES的基本要求是,采用对称分组密码体制,AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个(如果数据块及密钥长度不足时,会补齐)。

对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图: 

图片
图片
DEMO

https://www.epoos.com/demo/jsencrypt/aes-demo.html

对于WEB开发来说,AES前端加密其实意义并不大,因为AES加密的过程就是将数据加盐之后以AES加密的方式进行加密。

要想做到这些,首先就得将SALT以及DATA传输到前端。

然而,这些数据放到了前端,那也就意味着对客户端的用户来说是可见的了

这些数据在网络上进行传输的过程中被拦截了之后,数据也就将没有任何遮掩的暴露在攻击者眼前。

**RSA**加密倒是可以避免这个问题

只要服务端将公钥传输到前端,前端拿到公钥之后以RSA加密方式对数据进行加密

因为RSA公钥加密过的数据唯有唯一的私钥才能进行解密,因此即使用户的数据被拦截之后,仍然可以保证其私密性。

但是由于RSA加密用的是非对称加密,这样如果对于大量的数据进行加密的时候就会很耗费性能

因此如果是对于大量的数据进行加密,就需要用到对称加密和非对称加密共同来完成了。

具体实现方式也是类似于https的传输方式

代码语言:javascript
复制
使用非对称加密传递密钥
拿到密钥之后使用对称加密的方式对数据进行加解密
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • RSA加密
    • DEMO
    • AES加密
      • DEMO
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档