JS逆向之MD5加密算法,对称加密之DES、AES,非对称加密之RSA

MD5使用

在html文件中引入:

<script src=”https://cdn.bootcss.com/blueimp-md5/1.1.0/js/md5.js”></script>

python中使用:

from hashlib import md5

# python中的md5只能加密二进制数据
m = md5()

m.update('你好'.encode()) #加密,没有返回值

print(m.hexdigest()) #提取密文

对称加密之DES,AES

# pip install pycryptodomex -i https://pypi.tuna.tsinghua.edu.cn/simple

from Cryptodome.Cipher import DES, AES
import binascii  # 进制转换模块

key = 'qwertyui'.encode()  # 密钥也需要是一个字节数据,也就是encode之后的数据,密钥必须是八个字符

data = '你好世界你好世界'  # 根据不同的工作模式来定,有些对明文数量有限制,有些没有


# 加密函数
def encryption(key, data):
    """

    :param key: 密钥
    :param data: 明文
    :return: 密文
    """
    cipher = DES.new(key=key, mode=DES.MODE_CBC, iv=b'12345678')  # 创建一个加密规则
    data = data.encode()
    return binascii.b2a_hex(cipher.encrypt(data))


encryptedData = encryption(key, data)
print(encryptedData)


# 解密函数
def decryption(key, data, iv):
    """

    :param key: 密钥
    :param data: 密文
    :param iv: 偏移量
    :return: 明文
    """
    cipher = DES.new(key=key, mode=DES.MODE_CBC, iv=iv)
    data = binascii.a2b_hex(data)
    return cipher.decrypt(data)


decryptedData = decryption(key, encryptedData, b'12345678').decode()
print(decryptedData)

非对称加密之RSA

# pip install rsa -i https://pypi.tuna.tsinghua.edu.cn/simple
import rsa
import binascii

# 生成一对公私钥
pubkey,privkey = rsa.newkeys(512)# 这个数字代表能被加密的数据的位数,最少是128

# 只能加密二进制数据,两个参数,第一个是二进制的明文,第二个是公钥
crypto = rsa.encrypt(message='你好世界'.encode(),pub_key=pubkey)
crypto = binascii.b2a_hex(crypto)
print(crypto)

crypto = binascii.a2b_hex(crypto)
message = rsa.decrypt(crypto=crypto,priv_key=privkey)
print(message.decode())
  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值