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

架构设计-如何安全地传输密码

java web 项目中经常会遇到登录或注册的场景,如果查看浏览器的 network 网络请求时,用户的密码以明文方式传输,会造成很多安全隐患,这就涉及到密码如何安全传输的问题。

数据加密的重要性不言而喻,通用的加密技术有 哈希散列、对称加密、非对称加密。

哈希散列

哈希散列是通用意义上的加密技术。定义:通过几乎不可逆的哈希算法将明文内容转换成散列后的密文内容。攻击者几乎不可能通过密文猜测到对应的明文内容。典型的是 md5 算法。md5 算法有非常大的风险:对于弱口令的攻击容易被破解。攻击者可以通过常用弱口令的密文表,通过暴力破解的方式猜测试密码。

对称加密

典型的算法:AES  DES 。适用于服务器之间的数据交互。

通信双方约定相同的对称加密密钥,依赖于共享的密钥进行加密解密。客户端使用密钥加密信息后传输给服务端,服务端通过密钥解密后获得明文。因为密钥不同,即便是弱口令,攻击者也无法通过暴力破解获得密码。此方法存在的问题是:密钥只能保存到服务器端,因为如果密钥保存在客户端,数据直接在客户端加密,就等于将加密算法和密钥全部暴露出来。

非对称加密

典型算法:RSA 算法。非对称加密算法使用2个密钥(公钥、私钥)进行加密和解密,加密密钥可以公开(使用公开密钥加密),解密密钥需要保密。非对称加密从根本上克服了传统密码在密钥分配上的困难。算法原理:将2个素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积分开作为加密密钥。使用 RSA 密码可同时实现数字签名和数字加密。

使用非对称加密解密的服务通信过程如下:

客户端在连接建立之初就获得服务器端的公钥;

<
http://www.lryc.cn/news/369967.html

相关文章:

  • 【库】nprogress 顶部进度条
  • 15、架构-可靠通讯之服务安全
  • web刷题记录(5)
  • Redis高并发高可用
  • 【前端取不到cookie的的原因】http-only
  • 推荐 2 个 火火火火 的开源项目
  • 从0到100:找搭子小程序开发笔记(一)
  • 迷宫最短路径求解--c++
  • SpringFramework总结
  • 品牌与产品:消费者决策的经济逻辑与品牌宣传的战略意义
  • MFC四种方法编写多线程
  • VPN简介
  • 【C/C++】用C语言写一个数据仓库,存储和修改数据
  • YOLO v5与YOLO v8框图比较
  • Redis集群(5)
  • STM32H5 DAC 配置
  • 第十九节:暴力递归到动态规划
  • 服务器部署spring项目jar包使用bat文件,省略每次输入java -jar了
  • 2024备忘知识点
  • JS基础与高级应用: 性能优化
  • Python | Leetcode Python题解之第145题二叉树的后序遍历
  • 公司面试题总结(二)
  • 人脸识别和 ArcFace:用于深度人脸识别的附加角边际损失
  • 双标引领:汽车软件安全的ASPICE与ISO21434之道
  • 再度牵手,制造升级 | 毅达科技IMS OS+通用产品集+行业套件项目正式启动!
  • 大疆智图_空三二维重建成果传输
  • python实现无人机航拍图片像素坐标转世界坐标
  • C#面:什么是 Windows 服务,它的生命周期与标准的 EXE 程序有什么不同
  • Java基础面试题自测
  • 【LeetCode 第 401 场周赛】K秒后第 N 个元素的值