zoukankan      html  css  js  c++  java
  • OpenSSL

    功能应用:

    1. 消息摘要,给文件或数据生成消息摘要,消息摘要只能校验数据的完整性,如SHA、MD5
    2. 数据加密和解密:对数据进行加密解密,OpenSSL实现了所有加密算法
    3. 数字证书:可以通过命令行或代码生成证书,证书内包含了公钥
    4. 数字签名:利用加密算法对数据进行签名,验证数据来源可靠性,如RSA
    5. 随机数字:产生可靠的随机数

    加密算法:

    HASH算法:SHA、MD5等,不可逆加密,用于校验数据的完整性。

    对称加密算法:DES、3DES、DESX等,双方使用相同的密钥进行加密解密。

    非对称算法:RSA、ECC等,双方使用不同的密钥进行加密解密,公钥和私钥。公钥加密的数据只有私钥能解密,反之亦然。

     

    其中RSA使用最为广泛,可同时用于数据加密和数字签名。

    公钥和私钥:

    公钥:公开的,提供给他人的加密解密钥匙,可以提供给多人。

    私钥:只能自己一个人使用,不公开

    性质:公钥和私钥都能进行加密解密,公钥加密的数据只有私钥能解密,私钥加密的数据只有公钥能解密。

    应用场景:

    • 公钥数据加密

    数字证书内包含了公钥,在进行会话连接时,双方交换各自的公钥,保留自己的私钥。进行数据传输时,利用对方的公钥进行数据加密。加密后的数据只有对方的私钥才能进行解密。

    • 私钥数字签名

    私钥进行数据加密,所有人用公钥都能解密数据,但是加密后的数据却唯有私钥能生成。可以用于消息来源验证。将数据用私钥加密并明文告诉用户密文内容,用户进行公钥解密比较确认数据来源可靠。

     

    数字证书:

    数字证书的作用:通信双方使用公钥和私钥进行加密解密。依然存在风险,当用户公钥被他人替换,他人就可以冒充进行通信。证书内包含了公钥提供者的信息,如地址,邮箱,域名等,并且由第三方机构提供和加密,保证了公钥的可靠性。

    利用证书,用户根据证书信息与消息来源进行比较,确认公钥的可靠性,证书由第三方机构颁布。

     
     
  • 相关阅读:
    springboot运行时该注意的地方
    建立第一个SpringBoot小列子(碰到的错误)
    mysql建表基本语法
    两层c:forEach循环嵌套
    git-------基础知识(本地推送项目版本---github上)
    《生活的邀请函》___ 奥雷阿
    输入路径(包括盘符),打印层级目录(隐藏文件也会打印出来)
    输入两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
    用java实现歌曲串烧高速版(SequenceInputStream的使用)
    Java中InputStream装饰器模式的大家族
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/9145440.html
Copyright © 2011-2022 走看看