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. Flutter学习

    常用网址 免费下载 !<AliFlutter 体系化建设和实践> Flutter 开发文档 Flutter实战 Dart 编程语言概览 pub仓库 main函数使用了(=>)符号, ...

  2. 【Azure 应用服务】Azure Function 不能被触发

    问题描述 Azure Function 不能被Postman 触发,错误信息如下: Error: write EPROTO 4020778632:error:100000f7:SSL routines ...

  3. C/C++ 的 指针/引用 传参

    #include <stdio.h> //指针传值 void addOne(int *a) { printf("%8p\n",a); *a = *a+1; } //引用 ...

  4. multiple definition of `MainWindow::MainWindow(QWidget*)

    qt刚建好工程运行的时候没问题,后面写了一点东西之后,再运行就发现出现MainWindow重复,我不理解. 解决方法:删除重复的引用. 再重新构建一下就好了.

  5. 为什么现在连Date类都不建议使用了?

    一.有什么问题吗java.util.Date? java.util.Date(Date从现在开始)是一个糟糕的类型,这解释了为什么它的大部分内容在 Java 1.1 中被弃用(但不幸的是仍在使用). ...

  6. 搞清楚Promise.all的异常处理

    参考资料: https://www.jianshu.com/p/356f10ee476d https://blog.csdn.net/aaqingying/article/details/122966 ...

  7. C++学习笔记之进阶编程

    目录 进阶编程 STL(Standard Template Library) 容器(container) 仿函数(functor) 算法(algorithm) transform 查找 全排列 迭代器 ...

  8. 制作B站直播简介

    本文只用于个人总结备份,如果对你有帮助就更好了. 准备工作 准备好简介要用的的背景图.头像图,上传到图床生成图片链接. 简介的内容可分为主播简介.直播时间.直播内容.联系方式,内容根据实际需要修改,需 ...

  9. vue入门教程之-插槽

    vue入门教程之-插槽 欢迎关注博主公众号「java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载请注明出处 https://www ...

  10. Android开发过程中的坑及解决方法收录(7)

    1.无法找到自定义View的实例对象 问题描述: 由于经常要使用到两个TextView的布局,所以,我打算将其封装成一个自定义View,封装成功,界面能够成功显示了,但是,想给它设置点击监听器的时候就 ...