AES实践4 某翻译加密

AES实践4 某翻译加密,第1张

首先使用方法直接搜索translate/querytranslatedate ,然后定位到了产生的js上,如下:

,这里在console直接输入(0,h.encrypto)(this.inputWord)。,然后返回的值是加密后的值,this.inputWord是加密前的值,跟进h函数,

function s(t) {
            var e = {
                mode: a.mode.ECB,
                padding: a.pad.Pkcs7
            }
              , i = a.enc.Utf8.parse(n)
              , s = a.AES.encrypt(t, i, e)
              , r = s.toString().replace(/\//g, "_");
            return r = r.replace(/\+/g, "-"),
            r
        }

结合CryptoJS - CryptoJS官方文档,然后自己模拟加密过程。如下:









python中的加密过程:

python_AES-ECB加密、解密方法_檬柠wan的博客-CSDN博客_aes加密ecb python

import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad


class EncryptDate:
    def __init__(self, key):
        # 初始化密钥
        self.key = key
        # 初始化数据块大小
        self.length = AES.block_size
        # 初始化AES,ECB模式的实例
        self.aes = AES.new(self.key.encode("utf-8"), AES.MODE_ECB)
        # 截断函数,去除填充的字符
        self.unpad = lambda date: date[0:-ord(date[-1])]

    def fill_method(self, aes_str):
        '''pkcs7补全'''
        pad_pkcs7 = pad(aes_str.encode('utf-8'), AES.block_size, style='pkcs7')

        return pad_pkcs7

    def encrypt(self, encrData):
        # 加密函数,使用pkcs7补全
        res = self.aes.encrypt(self.fill_method(encrData))
        # 转换为base64
        msg = str(base64.b64encode(res), encoding="utf-8")

        return msg

    def decrypt(self, decrData):
        # base64解码
        res = base64.decodebytes(decrData.encode("utf-8"))
        # 解密函数
        msg = self.aes.decrypt(res).decode("utf-8")

        return self.unpad(msg)


if __name__ == '__main__':
    # key的长度需要补长(16倍数),补全方式根据情况而定,未补齐会报错
    # key字符长度决定加密结果,长度16:加密结果AES(128),长度32:结果就是AES(256)
    eg = EncryptDate("4e87183cfd3a45fe")
    # 加密字符串长同样需要16倍数:需注意,不过代码中pad()方法里,帮助实现了补全(补全方式就是pkcs7)
    en = eg.encrypt("增长")
    de = eg.decrypt(en)
    print(f"加密结果:{en}")
    print(f"解密结果:{de}")

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/788704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存