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. 推荐10款C#开源好用的Windows软件

    DevToys 项目简介:DevToys是一个专门为开发者设计的Windows工具箱,完全支持离线运行,无需使用许多不真实的网站来处理你的数据,常用功能有:格式化(支持 JSON.SQL.XML).J ...

  2. RocketMQ(7) 消费幂等

    1 什么是消费幂等 当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消 费并未对业务系统产生任何负面影响,那么这个消费过程就是消费幂等的. 幂等:若某操作执行多 ...

  3. css移动端开发

    ​ 移动端浏览器主要对webkit内核兼容,现在的移动端主要针对手机端开发,移动端碎片化比较严重,分辨率和屏幕尺寸不一 调试方法 谷歌浏览器模拟手机调试 搭建本地web服务器,手机和服务器在同一个局域 ...

  4. 案例7:将"picK"译成密码

    密码规则:用当前字母后面的第五各字符来代替当前字符.比如字符'a'后面的第5个字符为'f', 则使用'f'代替'a'.编写程序,实现该功能. 示例代码如下: #define _CRT_SECURE_N ...

  5. vue peek 解决了 vue-template 加载 相对目录 ./components 组件内容 vscode

    点击组件跳转,vue-helper 带@的能跳转,相对目录的不能跳转.vue peek 解决了这个问题.

  6. docsify + GitHub Page免费搭建个人博客

    docsify生成文档 docsify是一个动态生成文档网站的工具.通过编辑MarkDown文件就能实现简约清爽的文档页面. 先在Github创建项目 创建项目成功后,把项目克隆到本地(以自己的实际地 ...

  7. c 语言默认什么编码

    C语言是没有编码的.它的编码就是平台的默认编码.比方说在windows 上汉字编码用gb2312 或者 说cp936(GBK一般的windows默认代码页,windows分为不同的代码页,可以查看一下 ...

  8. 静态类使用@Resource注解注入

    工作中需要,简单记录一下 @Component public class AccountUtil { private static AccountIdDao accountIdDao; @Resour ...

  9. 32_音视频播放器_SDL播放

    目录 一.简介 二.音频重采样 2.1 引入头文件 2.2 定义重采样相关属性 2.3初始化重采样 2.4 重采样 三.SDL播放 四.停止功能 五.处理读完音频包的情况 六.实现调节音量 七.实现静 ...

  10. 【732. 我的日程安排表 III】线段树求解

    class MyCalendarThree { public static void main(String[] args) { MyCalendarThree myCalendarThree = n ...