RSA实现用户密码加密传输

本文介绍了使用RSA加密技术在用户密码传输中的应用。在登录过程中,后端生成公钥发送给前端,前端使用公钥加密密码,然后将加密后的密码发送给后端,后端用私钥解密,确保密码的安全性。示例中,前端采用jsencrypt库,后端涉及相关工具类的实现。
摘要由CSDN通过智能技术生成

本文转载自:https://blog.csdn.net/qq_37023928/article/details/116777630

RSA 加密简介

RSA 加密是一种 非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)

RSA 加密、解密流程

在这里插入图片描述
通过 RSA 实现用户密码加密传输,核心思路

  • 点击登录,先请求后端,生成一对公私钥,将公钥返回给前台
  • 前台使用开源的 jsencrypt.js 对密码进行加密,加密后传输到后台
  • 后台对加密的密码进行解密

示例

使用的是 sprngboot + thymeleaf 模板进行整合的

前端

获取开源的 js 文件:https://github.com/travist/jsencrypt/tree/master/bin,文件名称为:jsencrypt.js

获取到开源文件后,我们把它放在:static/js/,创建页面 templates/login.html 文件

<!DOCTYPE html>
<html lang="en"  xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="js/jsencrypt.js"></script>

<body>
    <h1 th:text="${msg}">RSA测试</h1>
<form>
    用户账号:
    <input type="text" name="username" id="username">
    <br>
    用户密码:
    <input type="text" name="password" id="password">
    <br>
    <input type="button" th:onclick="login()" th:value="提交">
</form>
</body>
<script>
    function login() {
     
        var username = $('#username').val();
        var password 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值