des_cbc的key应该是8位的吧,都是在这个js代码中他是16位的。我用在线工具解这个能解开,但是用python解这个算法却显示长度不能为16位。
python解密js中des_cbc
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考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,则可能会出现长度错误的提示。
解决 无用评论 打赏 举报
悬赏问题
- ¥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多表提取相同字段数据并合并