HTTPS协议的主要功能依赖于SSL,SSL全称为安全套接层(Secure Socket Layer)。
SSL的功能主要依赖于三类加密算法,散列函数,对称加密和非对称加密。
 

HASH算法

HASH算法也称为散列函数,包括MD5,SHA1和SHA256。

1,MD5

MD5加密算法,全称“Message-Digest Algorithm 5”,中文名为“消息摘要算法第五版”。它是一种单向散列函数,具有不可逆性,意味着无法通过其输出的哈希值推导出原始数据。MD5算法的核心思想是将输入数据进行不可逆的变换,使不同的输入数据产生不同的输出结果。
MD5算法的处理过程包括填充、初始值设定、循环运算和输出。它首先将输入数据分成若干个块,每个块长度为512位,并对每个块进行一系列复杂的运算。经过这些处理后,MD5算法会输出一个由四个32位分组组成的128位哈希值,这个哈希值由32个16进制字符组成,通常以字符串的形式呈现。
MD5算法具有多种特性。它具有良好的压缩性,无论输入数据的长度如何,输出的MD5值长度都是固定的。同时,从原数据计算出MD5值相对容易,但已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)却非常困难,这体现了其强抗碰撞性。
MD5算法在计算机安全领域有广泛应用,特别是在各种软件的密码认证和钥匙识别上。然而,尽管MD5算法本身具有一定的安全性,但随着技术的发展,针对MD5的破解方法也在不断更新。因此,在实际应用中,通常需要通过加强密码设置、重新加密生成的MD5密码等方法,进一步提高密码的安全性。
总的来说,MD5加密算法是一种强大而有效的加密工具,它以其独特的单向性和不可逆性,为数据的安全存储和传输提供了重要保障。

2,SHA1

SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数,由美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1算法通过将输入数据转换为固定长度的哈希值,来实现数据的完整性保护和数字签名验证。
SHA-1算法的基本原理是将输入数据分块处理,并对每个数据块进行一系列的位运算和逻辑运算,最终生成一个160位(20字节)的哈希值。这个哈希值具有以下特点:
  • 哈希值长度固定,不论输入数据的长度如何,SHA-1生成的哈希值始终为160位。
  • 对于不同的输入数据,SHA-1生成的哈希值几乎是唯一的,即使输入数据的一个比特发生变化,生成的哈希值也会有较大差异。
  • 无法从哈希值反推出原始数据,即使输入数据只有微小的变化,生成的哈希值也会有较大差异,因此SHA-1算法是一种不可逆的加密算法。
SHA-1算法在实际生活中有广泛的应用,例如:
  • 密码验证:服务器端存储用户密码加密后的内容,每次密码校验比较的是密文是否相同,确保服务器管理员也无法获取到用户使用的密码。
  • 文件的完整性比较:当下载一个文件时,服务器返回的信息中包括这个文件的SHA-1值,在本地下载完毕将其进行SHA-1加密,之后比较两个SHA-1值,如果一致则说明文件完整不存在丢包现象。
然而,需要注意的是,尽管SHA-1在过去被广泛使用,但近年来其安全性受到了挑战。由于SHA-1的某些潜在弱点,一些安全专家建议逐步淘汰SHA-1,转而使用更安全的哈希算法,如SHA-256或SHA-3。
总体来说,SHA-1加密算法以其独特的散列特性和广泛的应用场景,为数据完整性验证和密码学安全提供了重要的支持。然而,随着技术的发展和安全需求的提高,选择更安全的哈希算法是更为明智的选择。

3,SHA256

SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数,由美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1算法通过将输入数据转换为固定长度的哈希值,来实现数据的完整性保护和数字签名验证。
SHA-1算法的基本原理是将输入数据分块处理,并对每个数据块进行一系列的位运算和逻辑运算,最终生成一个160位(20字节)的哈希值。这个哈希值具有以下特点:
  • 哈希值长度固定,不论输入数据的长度如何,SHA-1生成的哈希值始终为160位。
  • 对于不同的输入数据,SHA-1生成的哈希值几乎是唯一的,即使输入数据的一个比特发生变化,生成的哈希值也会有较大差异。
  • 无法从哈希值反推出原始数据,即使输入数据只有微小的变化,生成的哈希值也会有较大差异,因此SHA-1算法是一种不可逆的加密算法。
SHA-1算法在实际生活中有广泛的应用,例如:
  • 密码验证:服务器端存储用户密码加密后的内容,每次密码校验比较的是密文是否相同,确保服务器管理员也无法获取到用户使用的密码。
  • 文件的完整性比较:当下载一个文件时,服务器返回的信息中包括这个文件的SHA-1值,在本地下载完毕将其进行SHA-1加密,之后比较两个SHA-1值,如果一致则说明文件完整不存在丢包现象。
然而,需要注意的是,尽管SHA-1在过去被广泛使用,但近年来其安全性受到了挑战。由于SHA-1的某些潜在弱点,一些安全专家建议逐步淘汰SHA-1,转而使用更安全的哈希算法,如SHA-256或SHA-3。
总体来说,SHA-1加密算法以其独特的散列特性和广泛的应用场景,为数据完整性验证和密码学安全提供了重要的支持。然而,随着技术的发展和安全需求的提高,选择更安全的哈希算法是更为明智的选择。

对称加密算法

1,DES

Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。需要注意的是,由于DES使用56位密钥,因此已经不够安全,不应被用于保护敏感信息。

2,3DES

Triple DES,是对DES的一个扩展版本,使用三个密钥对数据进行三次加密,因此其安全性相对较高。但与此同时,其加密和解密的速度也会相对较慢。

3,AES

Advanced Encryption Standard,即高级加密标准,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。AES提供了三种长度的密钥,分别是128位、192位和256位,相对而言,AES的安全性要高于DES和3DES。

4,RC4

Rivest Cipher 4,是RSA数据安全公司开发的流加密算法,它的密钥长度是可变的,范围在1到256字节(8到2048位)之间。RC4算法的特点是加密速度快,因此在一些需要高效加密的场景中得到了广泛应用。
 
对称加密算法的主要特点是加密和解密使用相同的密钥,因此其加密和解密的速度通常较快。但与此同时,由于双方都需要持有相同的密钥,因此在密钥的分发和管理上存在一定的安全隐患。如果密钥被泄露,那么加密的数据就可能被破解。因此,在使用对称加密算法时,需要特别注意密钥的安全保护。

非对称加密算法

1,RSA

Rivest-Shamir-Adleman,这是最早也是最广泛使用的非对称加密算法之一。RSA算法基于大素数分解的困难性问题,可以用于数据加密和数字签名。RSA算法的特点是使用一对密钥,包括公钥和私钥。公钥用于加密数据,私钥用于解密数据。这种算法易于理解和操作,因此在各种应用中得到了广泛的使用。

2,DSA

Digital Signature Algorithm,这是一种专门用于数字签名的非对称加密算法。它主要用于验证数据的完整性和认证身份。DSA算法基于离散对数问题,可以确保数据的完整性和身份的真实性。

3,ECC

Elliptic Curve Cryptography,这是一种基于椭圆曲线数学问题的非对称加密算法。与传统的RSA和DSA相比,ECC在提供相同安全性的情况下需要更短的密钥长度,从而节省了计算资源。这使得ECC特别适合于资源受限的环境,如移动设备等。
 
总结起来就是,SSL其利用非对称加密实现身份认证和密钥协商,利用对称加密实现实现对数据的加密,利用散列函数来验证信息的完整性。
 
那么,针对SSL免费证书的不足和痛点,我开发并开源了一个平台:华迅FreeCert平台,支持免费的SSL证书,通配符证书的申请和托管,配合自动部署工具可以实现证书的自动化更新和部署,真正做到一次申请终身自动更新和自动部署,欢迎感兴趣的同学试用!
 

详解SSL证书系列(10)SSL的加密算法的更多相关文章

  1. java ssl https 连接详解 生成证书 tomcat keystone

    java ssl https 连接详解 生成证书 我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over ...

  2. SSL/TLS协议详解(中)——证书颁发机构

    本文转载自SSL/TLS协议详解(中)--证书颁发机构 导语 上一篇中,我们讨论了关于Diffie Hellman算法的SSL/TLS密钥交换.我们最终认为需要第三方来验证服务器的真实性,并提出了证书 ...

  3. 【转】DBMS_STATS.GATHER_TABLE_STATS详解 2012-04-22 09:20:10

    [转]DBMS_STATS.GATHER_TABLE_STATS详解 2012-04-22 09:20:10 分类: Linux 由于Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至 ...

  4. 免费SSL证书PK付费SSL证书 花落谁家

    3月17日和18日,Google Chrome 57.0.2987.110与Mozilla Firefox 52.0.1分别上线,而这两款浏览器都出现了一个共同点:打压HTTP协议.在Firefox ...

  5. HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?

    什么是SSL? SSL是指安全套接层协议(以及传输层协议TLS),位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持,是目前使用最广泛的安全协议.它为互联网或内部网络连接,进行操作的两台 ...

  6. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种,实测成功)

    以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com ...

  7. QT https post请求(QNetworkRequest要设置SSL证书,而SSL证书认证有三种)

    因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com/product ...

  8. 免费获取SSL证书/一键安装SSL证书/https加密

    因为我用的是恒创的香港服务器 虽然价格相较于大促的阿里云贵一些,但是有一个有点不用备案... 安装步骤: 1.登录云主机控制面板, 在 其他管理 中找到并进入 SSL证书 设置. 注意:如拥有多个域名 ...

  9. java ssl https 连接详解 生成证书

    我们先来了解一下什么理HTTPS 1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全 ...

  10. 详解HTTPS、TLS、SSL

    HTTPS.TLS.SSL HTTP也称作HTTP over TLS.TLS的前身是SSL,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3.下 ...

随机推荐

  1. 图书管理系统---基于ajax删除数据

    book_list.html代码 {% load static %} <!DOCTYPE html> <html lang="en"> <head&g ...

  2. linux基本命令--day02

    目录树架构示意图 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以 ...

  3. 06-Redis系列之-哨兵(Redis-Sentinel)和集群详解和搭建

    主从架构高可用 主从架构存在的问题 主从复制,主节点发生故障,需要做故障转移.(可以手动转移:让其中一个slave变成master) 主从复制,只有主写数据,所以写能力和存储能力有限 总结:redis ...

  4. consul 的 HTTP API 和使用方法

    目录 搭建起 consul Consul 的 HTTP API Service API 简单地注册服务 健康检查的配置和查询 建议读者先学习笔者的另一篇文章 学习搭建 Consul 服务发现与服务网格 ...

  5. [python]将多张图片合并为单个pdf文件

    前言 最近有个个人需求是要把多个图片文件合并为一个PDF文件,这样方便用PDF阅读器连续看,避免界面点一下,只会图片放大.(比如看漫画) 主要思路是先把单张图片转换成单个PDF文件,然后把PDF文件进 ...

  6. STL-priority_queue模拟实现

    #include<deque> //测试用 #include<vector>//测试用 #include"9Date.h"//测试用 #include< ...

  7. 解密Spring中的Bean实例化:推断构造方法(上)

    在Spring中,一个bean需要通过实例化来获取一个对象,而实例化的过程涉及到构造方法的调用.本文将主要探讨简单的构造推断和实例化过程,让我们首先深入了解实例化的步骤. 实例化源码 protecte ...

  8. react 中 动态添加 class,防止图片 重复加载, 主要是 background-image的二次加载会有新请求,和图片的闪烁

    react 中 动态添加 class,防止图片 重复加载, 主要是 background-image的二次加载会有新请求,和图片的闪烁 let imageTopBg if (imgSrcBg) { c ...

  9. FreeRTOS教程4 消息队列

    1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP仿真器 XCO ...

  10. hibernate之createQuery与createSQLQuery

    信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.miracle.dm.doc.catalog.m ...