前端加密后端解密,前后端数据加密解密
原标题:前端加密后端解密,前后端数据加密解密
导读:
前端使用JSEncrypt给登录密码加密1、前端使用JSEncrypt给登录密码加密的流程如下:后端生成公钥并提供给前端:后端首先生成一对公钥...
前端使用JSEncrypt给登录密码加密
1、前端使用JSEncrypt给登录密码加密的流程如下:后端生成公钥并提供给前端:后端首先生成一对公钥和私钥。通过接口或其他方式,后端将公钥提供给前端。前端引入JSEncrypt库:在前端项目中,如vue项目,通过npm安装JSEncrypt库。将JSEncrypt库集成到需要的组件中。前端使用公钥加密密码:前端获取到后端提供的公钥。
2、加密流程大致如下:首先,后端生成公钥并通过接口或方式提供给前端。 前端在项目中引入jsencrypt库,如在Vue项目中通过npm安装并集成到组件中。 获取到公钥后,前端生成对应的加密私钥,用公钥加密密码并作为新密码传给后端。后端使用私钥解密验证,通过后生成token。
3、首先,在Vue项目中需要安装JSencrypt插件依赖,以便进行加密与解密的处理。加密挂载方式 全局的main挂载方式 在main.js文件中引入JSencrypt插件。通过Vue的原型或全局对象挂载JSencrypt实例,使得整个应用都能访问到加密功能。单文件Vue组件挂载方式 在需要加密功能的Vue组件中直接引用JSencrypt插件。
4、首先,登录时输入账号和密码后,通过网络抓包工具观察,发现password字段被加密处理。(抓包分析)进一步搜索关键字password,在代码中找到了加密操作的关键部分,其中箭头标记的代码片段是解密密码的关键。(定位加密点)经过仔细分析,确认该加密算法为RSA,主要通过JSEncrypt库和setPublicKey方法实现。
5、password加密方式和原来有所不同:1 先创建一个rsa公钥,公钥的两个参数新浪微博都给了固定值,不过给的都是16进制的字符串,第一个是登录第一步中的pubkey,第二个是js加密文件中的‘10001。这两个值需要先从16进制转换成10进制,不过也可以写死在代码里。这里就把10001直接写死为65537。
crypto-js加密、解密,在vue中的应用
1、为确保前后端数据安全传输,本文将介绍如何在使用spring Boot项目时,对通过@requestBody接收的前端数据进行AES加密与后端解密的实现过程。首先,需要在Vue项目中引入`axios`和`crypto-js`两个库,其中`axios`用于发送请求,`crypto-js`用于加密和解密数据。
2、在开发过程中,我直接引入了crypto-js: ^1,但随之而来的问题是代码包体积过大。深入分析后发现,问题出在加密解密功能中使用的crypto-js库体积过大。为了解决这个问题,我尝试了按需加载策略。根据在网上查找的信息,我发现是1版本包含的bower和node的部分导致体积并未减小。
3、之后,我们便可以在任何组件中轻松的使用这个api, 在search.vue组件中引入 首先我们对网易云搜索提示的api进行分析,在输入内容前按下 F12 并转换到 network 保持网络抓包开启 还原b方法可以直接用,不过需要注意引用Crypto-js库,这是一个专门的AES加密解密库。
前后端交互防密码抓包(前后端加解密)
1、前后端交互数据加解密方案:将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。使用服务端持有的私钥解密第4步获取到的RSA加密byte。从而获取到了第二步时候的数据,同时需要Base64解码data数据。
2、RSA+AES混合加密,即后端通过RSA算法生成一对公私钥,并把公钥提供给前端。前端通过AES算法生成密钥,利用公钥进行加密并送给后端,后端根据私钥进行解密,得到与前端相同的AES密钥。然后,前后端就可以利用AES密钥对称加密进行数据交互。详细步骤如图所示。RSA+AES混合加密,结合了两种加密方式的优点。
3、为了实现登录逻辑,前端需要在点击登录按钮时获取用户输入的账号、密码及时间戳。然后,对密码进行AES加密,生成签名,并发起AJAX请求。后端接收到请求后,验证签名、解密密码并与数据库进行匹配,最终返回登录结果。通过以上步骤,前后端交互完成登录功能。
前后端交互数据加解密
1、前后端交互数据加解密方案:将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。使用服务端持有的私钥解密第4步获取到的RSA加密byte。从而获取到了第二步时候的数据,同时需要base64解码data数据。
2、RSA+AES混合加密,即后端通过RSA算法生成一对公私钥,并把公钥提供给前端。前端通过AES算法生成密钥,利用公钥进行加密并送给后端,后端根据私钥进行解密,得到与前端相同的AES密钥。然后,前后端就可以利用AES密钥对称加密进行数据交互。详细步骤如图所示。RSA+AES混合加密,结合了两种加密方式的优点。
3、为了实现登录逻辑,前端需要在点击登录按钮时获取用户输入的账号、密码及时间戳。然后,对密码进行AES加密,生成签名,并发起AJAX请求。后端接收到请求后,验证签名、解密密码并与数据库进行匹配,最终返回登录结果。通过以上步骤,前后端交互完成登录功能。