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

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

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

哈希散列

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

对称加密

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

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

非对称加密

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

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

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

<

相关推荐

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

    2024-06-12 15:06:02       27 阅读
  2. 【Flask】使用 werkzeug 安全处理密码

    2024-06-12 15:06:02       56 阅读
  3. 安全架构设计

    2024-06-12 15:06:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-12 15:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-12 15:06:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-12 15:06:02       82 阅读
  4. Python语言-面向对象

    2024-06-12 15:06:02       91 阅读

热门阅读

  1. 【名词解释】Unity中的Scrollbar组件及其使用示例

    2024-06-12 15:06:02       37 阅读
  2. 大数据的定义特点与应用场景?

    2024-06-12 15:06:02       34 阅读
  3. 网络数据库后端面试题

    2024-06-12 15:06:02       29 阅读
  4. c++:回顾(一)

    2024-06-12 15:06:02       34 阅读
  5. 杂项——编码器控制小车走固定距离(stm32)

    2024-06-12 15:06:02       36 阅读
  6. 2833.距离原点最远的点

    2024-06-12 15:06:02       34 阅读
  7. 亚马逊云服务器价格贵不贵?

    2024-06-12 15:06:02       31 阅读
  8. 设计模式之建造者模式

    2024-06-12 15:06:02       31 阅读
  9. 音视频开发26 FFmpeg 时间问题整理

    2024-06-12 15:06:02       33 阅读
  10. 05 Hadoop简单使用

    2024-06-12 15:06:02       25 阅读