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. Html飞机大战(十三): 暂停状态编辑

    好家伙,本篇介绍如何添加暂停状态 按照惯例我们依旧先分析思路 什么时候游戏应该暂停? 当我的鼠标不在游戏画面内了,我们就可以直接暂停了 在当我的鼠标回来以后,我们继续进行游戏 所以我们可以监听一个鼠标 ...

  2. 【Azure Redis】Redis服务负载达到100%后的影响及有何优化方法

    问题描述 Redis服务负载达到100%后的影响及有何优化方法 问题解答 Redis的负载达到100% 意味着 Redis 服务器繁忙,无法跟上请求,导致客户端发送出来的请求超时. 常规情况下有一下几 ...

  3. Taurus.MVC WebMVC 入门开发教程7:部分视图和页面片段(结束篇)

    本系列的目录大纲为: Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行 Taurus.MVC WebMVC 入门开发教程2:一个简单的页面呈现 Taurus.MVC WebM ...

  4. rpa使用自带数据抓取方式抓取页面元素

    大家好,我是一方. 今天我们一起看一下如何使用rpa自带的功能来抓取自己想要的页面元素,这里我们以抖音为例来抓取某个领域的作者列表. 想要获取页面元素,大概的流程为:确定页面元素.分析页面元素.使用自 ...

  5. 如何避免MYSQL主从延迟带来的读写问题?

    在MYSQL 部署架构选型上,许多公司都会用到主从读写分离的架构,如下是一个一主一从的架构,主库master负责写入,从库slave进行读取. 但是既然是读写分离,必然会面临这样一个问题,当在主库上进 ...

  6. iMindMap 10 的使用体验 + 讯飞输入法 + windows防火墙 (完美)

    这个软件 最终的效果非常好. 但是有一个硬bug,就是输入光标 搜狗输入法和百度输入法,输入法获取不到,导致输入中文的时候,文字候选框位置特别远. 如果是纯英文 输入使用,就没有这个bug. 总结: ...

  7. 基于4G的智能工牌解决方案特色解析

    前记  随着数字化的不断发展以及cat1模块的竞争加剧.cat1无论从成本或者功耗上,都进化的特别快.这样的前提下,让基于4G可穿戴产品逐渐成为现实可穿戴产品必备.能解决以前很多不能解决的问题.  作 ...

  8. day23-服务器端渲染技术01

    服务器端渲染技术01 为什么需要jsp? 在之前的开发过程中,我们可以发现servlet做界面非常不方便: 引出jsp技术=> jsp=html+java代码+标签+javascript+css ...

  9. 遇到百张数据表也不怕,Java自动生成实体、Controller、DAO、Service以及Service实现类

    一.说明 该工具类实现以下功能: 1.简单的controller方法 2.自动生成Dao类 2.自动生成Service类 2.自动生成ServiceImpl类 二.连接数据库 // 数据库配置信息 p ...

  10. Java问题汇总,持续更新到GitHub

    目录介绍 00.Java问题汇总 01.具体问题 好消息 博客笔记大汇总[16年3月到至今],包括Java基础及深入知识点,Android技术博客,Python学习笔记等等,还包括平时开发中遇到的bu ...