常用加密算法概述

最近准备软考,需要了解网络安全,网上资料较多,比较零散,本文进行了一下整理


一、数字签名

    首先要明白的是数字证书签名跟常说的加密算法是两回事。关于数字证书,概念请参照其他博客。

    概念介绍博客:https://www.cnblogs.com/zedosu/p/6558290.html

二、加解密算法

  1.     摘要算法 

          (1)MD5

                       MD5 用的是 哈希函数,它的典型应用是对一段信息产生 信息摘要,以 防止被篡改。严格来说,MD5 不是一种 加密算法 而是 摘要算法。无论是多长的输入,MD5 都会输出长度为 128bits 的一个串 (通常用 16 进制 表示为 32 位   128/4=32, 4位二进制数用16进制表示为1位)。

                         MD5加盐:为了防止黑客通过彩虹表根据哈希值反推原始口令,在计算哈希的时候,不能仅针对原始输入计算,需要增加一个salt来使得相同的输入也能得到不同的哈希,这样,大大增加了黑客破解的难度。

 如果salt是我们自己随机生成的,通常我们计算MD5时采用md5(message + salt)。但实际上,把salt看做一个“口令”,加salt的哈希就是:计算一段message的哈希时,根据不同口令计算出不同的哈希。要验证哈希值,必须同时提供正确的口令。

            (2) SHA-1

                      SHA1 是和 MD5 一样流行的 消息摘要算法,然而 SHA1 比 MD5 的 安全性更强。对于长度小于 2 ^ 64 位的消息,SHA1 会产生一个 160 位的 消息摘要。基于 MD5、SHA1 的信息摘要特性以及 不可逆 (一般而言),可以被应用在检查 文件完整性 以及 数字签名 等场景。

            (3) HMAC

         (4)SM3

                       SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。

                        

2.加密算法

    (1)对称加密

  • DES

  • AES

  • 3DES

  • RC-5

  • SM1

  •  

我想把一些答案总结成一篇文章。 首先,不要将MD5哈希视为字符串,而是将其视为十六进制数。因此,每个数字都是十六进制数字(0-15或0-F),表示四位,而不是八位。 进一步地,一个字节或八个比特由两个十六进制数字表示,例如, b'1111 1111'= 0xFF = 255。 MD5哈希长度为1​​28位,通常由32个十六进制数字表示。 SHA-1哈希长度为1​​60位,通常用40个十六进制数字表示。 对于SHA-2系列,我认为哈希长度可以是预先确定的集合之一。因此SHA-512可以用128个十六进制数字表示。 同样,这篇文章仅基于之前的答案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值