编码与加密基础笔记

文章目录

  • 1、ASCII 编码
  • 2、了解Base64
  • 3、MD5消息摘要算法
  • 4、对称加密与 AES
  • 5、非对称加密与 RSA

参考书籍《Python 3 反爬虫原理与绕过实战》

1、ASCII 编码

ASCII编码实际上约定了字符串二进制的映射关系。
编码与加密基础笔记_第1张图片

2、了解Base64

简单来讲Base64就是用64个可打印字符来表示8位二进制数据。’=‘ 只是为了补全编码后的字符数为4的整数

A-Z
a-z
0-9
+
/

它是网络中常见的编码方式,它的出现是为了解决不可打印的字符在网络传输过程中造成的乱码现象。Base64编码时所用的对照表是固定的,它的编码过程是可逆的。伪加密。
例子:

"""
CSDN: 抄代码抄错的小牛马
"""
import base64

s = "你好"

encrypt = base64.b64encode(s.encode('utf-8'))
print("加密的结果:", encrypt)

# 解密
decrypt = base64.b64decode(encrypt).decode("utf-8")

print("解密的结果:", decrypt)

编码与加密基础笔记_第2张图片

3、MD5消息摘要算法

MD5 消息摘要算法是一种被广泛使用的散列函数,MD5 不可逆。它被广泛的应用于密码存储、检验信息等场景。
例子:

"""
CSDN: 抄代码抄错的小牛马
"""
import hashlib

data = "你好吗"
md5Data = hashlib.md5(data.encode('utf-8')).hexdigest()

print(md5Data)

# 7c62edd327b79f9b44c5142675e39d0b

4、对称加密与 AES

加密和解密时使用同一个密钥的方式叫对称加密,使用不同密钥的是非对称加密,相对于非对称加密来说,对称加密的速度更快,速度的优势使得它更适合大量数据加密的场景。
Python中的AES加密
python实现AES加密、解密
大概格式:


# 加密
def getAesString(data, key0, iv0):
    data = pad(data)

    key = key0.encode('utf-8')
    mode = AES.MODE_CBC
    iv = iv0

    print('key1', key)
    print('mode', mode)
    print('i_v', iv.encode("utf-8"))
    print('============================')

    print(len(data))
    # 创建加密对
    AES_obj = AES.new(key, mode, iv.encode("utf-8"))
    # 完成加密
    AES_en_str = AES_obj.encrypt(data.encode("utf-8"))
    # 用base64编码
    AES_en_str = base64.b64encode(AES_en_str)
    # 最后将密文转化成字符串
    AES_en_str = AES_en_str.decode("utf-8")

    return AES_en_str

    pass

5、非对称加密与 RSA

这种加密方式需要用到两个密钥:公钥私钥。 公钥与密钥是一对的,如果用该公钥对数据进行加密,那么只有用对应的私钥才能够完成解密数据。反之即可。在非对称加密算法中,应用最广泛、强度最高的是RSA算法。
python中rsa非对称算法(包含分段加解密分析)
RSA非对称加密解密、签名验签
解密:编码与加密基础笔记_第3张图片

你可能感兴趣的:(笔记,笔记,python,js逆向)