Python爬虫算法篇(一)

点击上方 [蓝字] 关注我们

1.四种类型算法

  • 摘要算法

  • 对称加密算法

  • 非对称加密算法

    SM国密算法

本篇主要是对摘要算法的讲解。

2.摘要算法

消息摘要算法/签名算法包含:`MD5、SHA、HMAC`

2.1 MD5

全称` MD5` 消息摘要算法,又称哈希算法、散列算法,由美国密码学家`罗纳德·李维斯特`设计,于 1992 年作为 RFC 1321 被公布,用以取代 MD4 算法。

之所以叫摘要算法,它的算法就是提取明文重要的特征。

摘要算法是单向加密的,也就是说明文通过摘要算法加密之后,是不能解密的。

摘要算法的第二个特点密文是固定长度的,它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用`16进制`的字符串表示)。

2.2 SHA

全称安全哈希算法,由美国国家安全局`(NSA)`所设计,主要适用于数字签名标准里面定义的数字签名算法。

`SHA` 通常指 `SHA` 家族的五个算法,分别是:` SHA-1`、`SHA-224`、`SHA-256`、`SHA-384`、`SHA-512`。

`SHA` 是比 `MD5` 更安全一点的摘要算法,`MD5` 的密文是 32 位,而 `SHA-1` 是 40 位,版本越强,密文越长,代价是速度越慢。

`sha`系列特征

` `sha1`: 23c02b203bd2e2ca19da911f1d270a06d86719fb(40位) `````sha224`: 1ffeffcbe2707dc5d1c10df619203c1a3b620c70394b3c4c106d92e6(56位) `````sha256`: c3a845a318cd654749ea4db6f4d5f9cb5c6e5b0cade46d9dc04af46d32049c7c(64位) `````sha512`: af47f324b77a4885748bfc3f0d9b5a846c0153c589852bb3f185ab6e7a600547b818ab994776e8d24584457f9aac84246b0de971584cebbdd96aa1aee6630f9f(128位) `

2.3 HMAC

全称散列消息认证码、密钥相关的哈希运算消息认证码,于 1996 年提出,1997 年作为 RFC 2104 被公布。

`HMAC` 加密算法是一种安全的基于加密 `Hash` 函数和共享密钥的消息认证协议,它要求通信双方共享密钥 key、约定算法、对报文进行 `Hash` 运算,形成固定长度的认证码。通信双方通过认证码的校验来确定报文的合法性。

3.摘要算法使用

JS实现 算法 的类库有很多,比较常用是`crypto-js`,安装 `npm install crypto-js` 。

Python实现 算法 的类库也有很多,比较常用是`hashlib`,安装 `npm install hashlib` 。

3.1 MD5

JavaScript 实现

var CryptoJS = require('crypto-js')``   ``function md5_encrypt(text) {`    `return CryptoJS.MD

你可能感兴趣的:(python,爬虫,开发语言)