python 执行JS文件报错,有谁知道怎么处理吗?

没太看懂应用场景和上下文。不过从报错来看应该是个比较经典的编码问题,感觉google以下就会有解决方案。麻烦把报错也粘贴出来

image
主要我要加密和解密,前端的代码是这样的,怎样用python加密和解密呢?

你直接问相关的前端工程师,或者百度一搜这个加密算法是什么,这明显是调用的相关的加密库。js 有 python 也肯定有的。注释好像也写了,是des加密,就是不知道注释是不是对的。最好是直接合前端确认下。

前端说就这样的逻辑,不知道用python怎么用,网上看了加密与前端加密结果不一样


这是后端Java加密,咋转python加密呢?

参考链接:https://stackoverflow.com/questions/40646297/python-des-encryption
截取的内容

use pyDes with python3, here is the demo code:

def des_ecb_encode(source, key):
    des_obj = des(key, ECB, IV=None, pad=None, padmode=PAD_PKCS5)
    des_result = des_obj.encrypt(source)
    return base64.encodestring(des_result)


if __name__ == '__main__':

    src = b'cagent=81288128/\\\\/method=tc'
    key = b'12341234'
    encrypted = des_ecb_encode(src, key)
    print('encrypted: ', encrypted)

and it will print

encrypted:  b'IGcOAYEQN88F1NFLtBOK23PMeg42F7r8jchYOmglMAs=\n'


还是报错,

一百度pyDes 加解密就搜出来了

import base64

from pyDes import des, ECB, PAD_PKCS5


import base64
from pyDes import des, PAD_PKCS5, ECB


class DcDes:
    def __init__(self):
        DES_KEY = "test_key"  # 默认8位密钥

        self.des_obj = des(DES_KEY, ECB, DES_KEY, padmode=PAD_PKCS5)  # 初始化一个des对象,参数是秘钥,加密方式,偏移, 填充方式
        self.des_obj.setKey("enter your key")  # 自定义key,位数不限

    def encrypt(self, obj):
        des_obj = self.des_obj
        secret_bytes = des_obj.encrypt(obj)  # 用对象的encrypt方法加密
        return base64.b64encode(secret_bytes).decode()

    def decrypt(self, secret_bytes):
        des_obj = self.des_obj
        secret_bytes = base64.b64decode(secret_bytes)  # 这里中文要转成字节
        obj = des_obj.decrypt(secret_bytes)  # 用对象的decrypt方法解密
        return obj.decode()

if __name__ == '__main__':
    dc_des = DcDes()
    res = dc_des.encrypt("12312321")
    print(res)
    print("解密后")
    print(dc_des.decrypt(res))



还是不行呢,报错解决了也是加密结果不一样

报错和注释都给你写了,秘钥要求是8位。
建议你要理解一下报错,看一下注释信息。

谢谢老师 :smiling_face_with_three_hearts: