• 基于AES对称加密,RSA非对称,MD5摘要算法的服务器客户端通讯模型


    简单的概念,文章可能会涉及到

    1. RSA——非对称加密,会产生公钥和私钥,公钥在客户端,私钥在服务端。公钥用于加密,私钥用于解密。
    2. AES——对称加密,直接使用给定的秘钥加密,使用给定的秘钥解密。(加密解密使用相同的秘钥)
    3. MD5——一种单向的加密方式,只能加密,不能解密
    4. Base64编码——对字节数组转换成字符串的一种编码方式

    https://www.jianshu.com/p/b092b4fac27c

    模型:
    1:客户端需要先和服务器建立联系,本例使用的是使用简单socket来实现的,厉害的同学可以用nio来实现。

    2:客户端向服务器发送数据,然后分为3步加密
    A:客户端确定要发送的数据(明文)
    B:客户端对数据(明文)进行AES加密和MD5获取摘要信息,然后利用RSA用服务器的公玥对AES所使用的对称密钥进行加密。把所有数据整合在一起。
    C:客户端用自己的私玥进行整合后的密文再次进行加密,把加密后的数据发给服务器。

    3:服务器接收到客户端的数据,四步解密
    A:服务器用客户端的公玥进行RSA解密(认证:确定数据是来源于客户端,不是其他人的)
    B:服务器用自己的私玥RSA解密出对称密钥,
    C:服务器利用解出的对称密钥AES解密出明文
    D:服务器利用明文进行md5信息摘要与客户端发过来的信息摘要进行对比,若一致,则正确信息是完整的,若不一致,则证明信息又丢失

  • 相关阅读:
    Linux如何重复执行命令每隔几秒或者每隔几分钟
    Linux中如何在系统重启时执行命令或脚本
    如何重启Linux服务器
    Linux中30个有用的命令
    Linux中如何同时执行多个命令
    Linux中查看主机名的10种方法
    Linux中创建文件的10种方法
    Linux中cat命令的使用
    K8S最佳安装教程
    使用yum安装Golang
  • 原文地址:https://www.cnblogs.com/qdwz/p/13396981.html
Copyright © 2020-2023  润新知