数据安全:前端用户登录信息加密的实现(基于RSA)

前言

在开发后台管理系统,或其他有一定安全要求的系统时,通常会要求前端对传递的数据进行加密传输。而使用的加密算法多法RSA(非对称加密的一种),这里基于项目中经常用到的加密方式写一下项目总结。

一、数据加密算法

这里不讲原理不讲实现,只简单描述下不同算法的区别,了解一下。

1.1 算法分类

  • 对称加密: 单密钥加密,同一个密钥可同时用作加密和解密。优点:加解密速度快。缺点:安全性低,密钥一丢失就可能数据丢失。常见算法如:DES.
  • 非对称加密:加密解密用不同的密钥,也叫公私钥加密。优点:安全性较高,缺点:速度稍慢。常见算法如:RSA
  • Hash算法加密: 一种单向算法,加密数据不可逆,常用在不可还原的密码存储、信息完整性校验等。常见算法如:MD5

特别说明:因为非对称加密是项目中最常用到的,所以这里多做补充。非对称加密中,通信双方各自有一对公钥和私钥,其中公钥是公开的(由信息接受方【后端开发】提供给信息发送方,用来加密发送信息),私钥是各自保存的(由信息接受方保留【后端开发】常用来解密)且每个用户的私钥 是唯一的,所以其他用户除了可以用发送者的公钥来验证信息来源是否真实,还可以确保发送者无法否认曾发送过该信息。特点:用公钥加密的数据只能用私钥解密,反之私钥加密的数据只能用公钥解密。因为加密和解密用的是不同密钥,而且无法从一个密钥推导出另一个密钥,且公钥加密的信息只能用同一方的私钥进行解密。

1.2 常见算法

  • RSA算法:非对称加密,将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,可用于加密,也能用于签名。
    • 数据加密:公钥加密,私钥解密
    • 数字签名:私钥加密,公钥解密
  • DES:对称加密
  • MD5: Hash加密

二、用户登录时进行数据加密传输

2.1 保存密钥对

通常后端 在生成密钥对后,会把相应的公钥给你(有时也会给私钥用于解密)。以下是公钥:

-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJZitRZnq5qx4gZc2W1r9BcAkDOrr+
....省略内容。。。。。。
+prTwH8Br0GfVU1zf4TirNVrpEAPXAgW80la9kXjOI6qZG6SChk6zvvwRKgpAgPMcnYAUQ3BOTgY/YJ0mfZB9XWYe-----END PUBLIC KEY-----

2.2 通过jsencrypt 封装加密方法

jsencrypt : 一个基于ras加解密的js库,特点就是简单好用。官网地址

  • 安装
# 安装
npm 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sophie_U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值