首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见加密算法之单向加密

常见加密算法之单向加密

作者头像
用户5521279
发布2020-04-02 16:48:32
5.3K0
发布2020-04-02 16:48:32
举报
文章被收录于专栏:搜狗测试搜狗测试搜狗测试

常见加密算法总结-单向加密

在接口测试过程中,常常会遇到加密算法,今天主要说说一下单向散列加密的4种算法。

MD5、SHA、HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法。我们通常只把他们作为加密的基础。单纯的以上三种的加密并不可靠, 除此之外BASE64编码算法不算是真正的加密算法。首先让我们了解下什么是单向散列算法。

单向散列算法

单向散列加密算法常用于提取数据,验证数据的完整性。发送者将明文通过单向加密算法加密生成固定长度的密文串,然后将明文和密文串传递给接收方。接收方在收到报文后,将解明文使用相同的单向加密算法进行加密,得出加密后的密文串。随后与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。其次也用于密码加密传递存储。单向加密算法只能用于对数据的加密,无法被解密,其特点为固定长度输出、雪崩效应。接下来是对4种算法的简单总结:

MD5

MD5严格意义上来说,不是编码也不是加密,而是摘要算法,也叫做哈希算法和散列算法,它的典型应用是:防止篡改和校验数据。

无论是多长的输入,MD5都会输出长度为128bits的一个串 (通常用16进制表示为32个字符)。需要注意的是:摘要算法是不可以逆的。通过加密后的数据是不能得到原始数据的。下面是相应的python实现代码:

SHA1

SHA1和MD5一样,也是摘要算法,但是SHA1的安全性更强,同时还有SHA256,SHA512等,区别就是长度不一样,越长越安全但是速度越来越慢。对于长度小于2 ^ 64 位的消息,SHA1会产生一个160位的消息摘要。基于MD5、SHA1的信息摘要特性以及不可逆(一般而言),可以被应用在检查文件完整性以及数字签名等场景。下面是python实现代码:

HMAC

HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法(MD5、SHA1等),以一个密钥和一个消息为输入,生成一个消息摘要作为输出。下面是以MD5算法的python实现代码:

BASE64

严格地说,BASE64属于编码格式,而非加密算法Base64。加密算法是网络上最常见的用于传输8bit字节代码的编码方式之一,Base64编码可用于在HTTP环境下传递较长的标识信息。常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过BASE64加密的。python实现代码如下:

这次就先总结这么多,下次是对复杂的对称加密(DES、PBE)、非对称加密算法的总结。下次见~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档