当前位置: 首页 > news >正文

做网站一般是怎么盈利动易网站地图

做网站一般是怎么盈利,动易网站地图,个人网站备案简介,海外seo托管页面输入用户名密码登录过程中,如果没有对用户名密码进行加密处理,可能会导致传输过程中数据被窃取,就算使用https协议,在浏览器控制台的Request Payload中也是能直接看到传输的明文,安全感是否还是不足。 大致流程&a…

页面输入用户名密码登录过程中,如果没有对用户名密码进行加密处理,可能会导致传输过程中数据被窃取,就算使用https协议,在浏览器控制台的Request Payload中也是能直接看到传输的明文,安全感是否还是不足。

大致流程:前端,在请求登录接口之前对用户名密码进行加密,服务端收到请求后解密得到明文的用户名密码。

这里使用RSA非对称加密,前端使用公钥加密,后端使用私钥解密,这样就不会暴露私钥。

一、后端


1、pom文件添加依赖

        <dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId><version>5.8.22</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-crypto</artifactId><version>5.8.22</version></dependency>

2、加密解密工具类

import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;public class SecretConstant {/*** 登陆相关*/public class LoginSecret{/*** 非对称加密 私钥 公钥私钥可以自己用代码生成,也可以在线生成,例如:https://tool.ip138.com/rsa/*/public static final String PRIVATE_KEY = "MIIBOAIBAAJAflJQPKoKO9gz9Op2XINkHXVIyonzt/HClZRVf+2MyF4OLGckiBLM\n" +"rLq6jN/U4JlgIxCIni3zOsJdhIIF1D6fQwIDAQABAkAsKpeHPmSpm+Q+o6OSoRXl\n" +"/tXeivE9xTelmOF0AxiQDWRu1XWKAmjR2kKBgN/B9NlhBjW5+p4PW30UI7uCyKUR\n" +"AiEAw8ba06ZG7CZyXZVD8MhFx0ztg0kIE+ZLOqGpjSpKC70CIQClLfTWxpTbF4gb\n" +"lxDOJL5G1XiXcM516MUz6q3udTiG/wIgZ0v929yI4ULr5urB/UJ+Zsj1LOcUxwMk\n" +"wFvaDSy6AvUCIAehu/JAcpg82hkMPcaIhBIZwtycZa2k95eSfD7MQ7RZAiA+Y8yI\n" +"MkG4asXqoh2jryn40ih2q/GnXoCwdPXUa9E4MA==";/*** 非对称加密 公钥*/public static final String PUBLIC_KEY = "MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAflJQPKoKO9gz9Op2XINkHXVIyonzt/HClZRVf+2MyF4OLGckiBLMrLq6jN/U4JlgIxCIni3zOsJdhIIF1D6fQwIDAQAB";}/*** 测试一下* @param args*/public static void main(String[] args) {String un = "admin";String pw = "admin@123456";// 用户名密码解密RSA rsa = new RSA(SecretConstant.LoginSecret.PRIVATE_KEY, SecretConstant.LoginSecret.PUBLIC_KEY);String un_jm = rsa.encryptBase64(un,KeyType.PublicKey);System.out.println("公钥加密后:"+un_jm);// 前端传过来的用户名密码是通过公钥加密的String userName_plaintext = rsa.decryptStr(un_jm, KeyType.PrivateKey);System.out.println("私钥解密后:"+userName_plaintext);// 加密后的密文String temp = "djCaCjhwVRc29vNHEIUqoGkn0azDjGdjHHV+zetw8GcKmJ8u2/VgAX54G/zzpcrBrpkR+SmS7QPkpSz5s05OLA==";System.out.println("私钥解密后:"+rsa.decryptStr(temp, KeyType.PrivateKey));}
}

3、使用示例

    public BaseResult login(String userNameCipher, String passwordCipher) {// 用户名密码解密RSA rsa = new RSA(SecretConstant.LoginSecret.PRIVATE_KEY, SecretConstant.LoginSecret.PUBLIC_KEY);String userName = rsa.decryptStr(userNameCipher, KeyType.PrivateKey);String password = rsa.decryptStr(passwordCipher, KeyType.PrivateKey);// 登录逻辑...}


二、前端


前端使用公钥加密,秘钥可以直接写在js文件中,因为用的是公钥所以不怕泄漏,当然了,如果想灵活一点,可以把公钥放在后端,前端通过接口查询得到公钥。

1、加密工具类

文件名称encryptUtils.js,内容如下,其他地方调用即可。


import JSEncrypt from 'jsencrypt';// 可能需要需要先安装jsencrypt库,执行:npm install jsencrypt /*** 登录使用的公钥,* 如果想灵活一点,可以把公钥放在后端,前端通过接口查询得到公钥。* @type {string}*/
const LOGIN_PUBLIC_KEY = "MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAflJQPKoKO9gz9Op2XINkHXVIyonzt/HClZRVf+2MyF4OLGckiBLMrLq6jN/U4JlgIxCIni3zOsJdhIIF1D6fQwIDAQAB";/*** 获取登录使用的公钥* @returns {string}*/
export const getLoginPublicKey = () => {return LOGIN_PUBLIC_KEY;
}/*** 加密* @param text  需要加密的文本* @param publicKey   公钥* @returns {string | false}*/
export const encodeStr = (text, publicKey) => {// RSA(非对称加密)const JSE = new JSEncrypt();// 设置公钥JSE.setPublicKey(publicKey);return JSE.encrypt(text);
}

2、使用示例

在需要加密的地方调用上面的方法

import request from '@/utils/request';
import { getLoginPublicKey, encodeStr } from '@/utils/encryptUtils';/*** 请求后端登录的方法*/
export async function login(params) {// 公钥加密params.userName = encodeStr(params.userName, getLoginPublicKey());params.password = encodeStr(params.password, getLoginPublicKey());const result = await request('/api/v1/user/login', {method: 'POST',type: 'JSON',body: params});return result;
}

前端加密后请求,后端解密得到明文。

http://www.yayakq.cn/news/747890/

相关文章:

  • 网站备案账号是什么样的中小型网站建设方案
  • 德州聊城网站建设互联网公司经营范围
  • 北京网站建设询q479185700上快装修设计用什么软件好用
  • 民治营销型网站商务酒店设计网站建设
  • 郑州微科网站建设每一天做网站
  • 小型企业的网站建设论文上海网页制作哪家好
  • 软文范例大全500字广西seo
  • 舒城县建设局网站收录网站有哪些
  • 网站管理基本内容wordpress分页调用代码
  • 长沙优化网站排名做电影网站需要服务器吗
  • 有经验的做网站模块化网站建设 局域网
  • a3电子报在什么网站做计算机外包公司
  • 买机票便宜网站建设管理者必备的三大能力
  • 如何创建网站主页wordpress判断为空
  • 代做论文 软件指导去哪些网站如何让自己做的网站在google搜索引擎上搜到
  • 网站建设 阳江如何做淘宝联盟网站的推广
  • 河南省建设厅举报网站网站没服务器行吗
  • 网站建设与制作就业前景网络服务能力
  • 网站建设 的销售图片做语音聊天网站要多少钱
  • 如何建立公司网站链接玉林建设公司网站
  • 广州新站优化哪个小说网站防盗做的好
  • 企业网站推广可以选择哪些方法网站建设86215
  • 料远若近网站建设注册公司网页
  • 网站建站四件套是什么开发工具都有哪些
  • 中小型企业网站选择什么配置的亚马逊服务器长沙租房网
  • 网站开发就业前景怎么样做网站至少要花多少钱
  • 网站内容管理软件网站百度商桥
  • 西安千度网站建设给个网站2022年手机上能用的
  • 烟台网站关键词推广如何做网络营销推广工作
  • 湖北省建设厅网站a群公司做企业网站的必要性