2301_77602568 2024-03-19 17:47 采纳率: 16.7%
浏览 1

python解密js中des_cbc

des_cbc的key应该是8位的吧,都是在这个js代码中他是16位的。我用在线工具解这个能解开,但是用python解这个算法却显示长度不能为16位。

img

  • 写回答

1条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-03-19 17:50
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析:该问题是关于des_cbc算法的key长度的疑惑,提问者发现在一个js代码中,key的长度为16位,但使用python解密时提示长度不能为16位。希望解答是否key的长度应该是8位。 解答:对于des_cbc算法,key的长度应该是8位,即64位。在实际应用中,可以使用长于8位的key,但需满足特定的条件,如填充等。此外,不同的语言和库可能对key长度的要求不同,需要根据具体情况进行调整。 案例: 以下是一个使用python中的pycryptodome库实现des_cbc加解密的案例。
    from Crypto.Cipher import DES
    from Crypto.Util.Padding import pad, unpad
    import binascii
    # key长度为8位,即64位
    key = b"key12345"
    data = b"hello world"
    # des_cbc加密
    cipher = DES.new(key, DES.MODE_CBC)
    ciphertext = cipher.encrypt(pad(data, DES.block_size))
    print("Encrypted:", binascii.hexlify(ciphertext))
    # des_cbc解密
    cipher = DES.new(key, DES.MODE_CBC, iv=cipher.iv)
    plaintext = unpad(cipher.decrypt(ciphertext), DES.block_size)
    print("Decrypted:", plaintext)
    

    输出结果

    Encrypted: b'ad66fe3cc1a707de9a4de9cf68befbe6'
    Decrypted: b'hello world'
    

    在以上案例中,使用了长度为8位的key进行加密,输出结果正确。如果使用长度为16位的key,则可能会出现长度错误的提示。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月19日

悬赏问题

  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 被蓝屏搞吐了,有偿求帮解答,Ai回复直接拉黑
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并