RSA加密登录(公钥加密登录)---安全登录

本文详细介绍前端使用RSA加密技术对用户密码进行加密的过程,包括MD5预处理、公钥设置及加密实现,阐述了公钥与私钥的角色及其在前后端交互中的作用。

登录/注册/支付 基本都要用到加密方案

加密原理:
后台生成rsa密钥对,然后在登陆页面设置rsa公钥,提交时用公钥加密密码,生成的密文传到后台,用私钥解密,获取密码明文。

前端运用RSA技术进行加密简单来说分为以下几步骤(0-4):
0.md5加密:引入md5的js,然后使用var md5password = md5( input框的明文value值 )

  1. 引入RSA加密文件jsencrypt.js

  2. 实例化加密对象
    var encrypt = new JSEncrypt(); //前端要做的事情
    var decrypt = new JSEncrypt(); //前端不要做的事情,可能后台要处理的事情

  3. 设置公钥 / 密钥(公钥pubkey跟你们后台大佬要吧)
    encrypt.setPublicKey(pubkey); //前端要做的事情
    decrypt.setPrivateKey(privkey); //前端不要做的事情,可能后台要处理的事情

  4. 加密 / 解密

    var encrypted = jsEncrypt.encrypt( 待加密内容md5password ); //前端要做的事情(这个“待加密的内容”是经过md5加密过的密码)
    var uncrypted = decrypt.decrypt( 加密后待解密内容 ); //前端不要做的事情,可能后台要处理的事情

我不太明白的事情是:为什么第三步要encrypt.setPublicKey来处理公钥(我看之前的项目中最后登录接口传到后台的是:1.经过md5与encrypt两次加密的账户密码,2.获取公钥接口,后台传给我的公钥(没处理过),与及一些其他参数内容。

不太明白的点:1.接口返回的公钥有啥用? 2.encrypt.setPublicKey(pubkey)有啥用?(后台给的公钥是加密用的,后台自己保留的私钥是解密用的。但是这个公钥私钥只进行了encrypt.setPublicKey(pubkey)与decrypt.setPrivateKey(privkey),这两个操作,我并不明白它的具体意义在哪?)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值