You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已知密钥,如何解密萤石CS-BC1C相机的AES加密图片?

萤石CS-BC1C加密图片解密求助

从萤石CS-BC1C相机下载的图片处于加密状态,已知加密密钥为安卓APP中设置的密码(长度8-16位,符合AES-128密钥长度标准),疑似采用AES-128加密,想通过Python或其他工具完成解密,请问是否可行?

已尝试的操作

1. 初步多加密模式测试

编写循环测试不同AES模式的代码,但未成功解密出有效图片:

from Crypto.Cipher import AES
from IPython.display import Image

key = b'my_key'

with open('encrypted_image_path',"rb") as f :
    data = f.read()

for mode in [AES.MODE_CFB,AES.MODE_EAX] :
    tmp = AES.new(key, mode=mode)
    clear_data = (tmp.decrypt(data))
    display(Image(data=clear_data))

2. 分析加密文件前缀

编写代码对比多张加密图片的共同前缀:

for i in cims : #cims is a list of filenames of encrypted images 
    with open(rootpath+i,"rb") as f :
        data = f.read()
    if i == cims[0] :
        ref = data
    else :
        cmp = 0
        for d,r in zip(data,ref) :
            if d!=r :
                break
            cmp += 1

结果显示:

  • 所有加密图片前704字节完全相同,前缀开头为b'hikencodepicture',紧随其后的是16字节十六进制串da32f310f87cc50aeebd59bc51bbce39
  • 更换APP密码后,仅前16字节b'hikencodepicture'保持一致,后续内容全部变化

3. 带指定IV的多配置测试

尝试使用上述16字节串作为IV,测试更多AES模式及数据截取方式,仍未成功:

key = getpass("Password:")
key = bytes(key,'utf-8')

iv = bytes.fromhex('da32f310f87cc50aeebd59bc51bbce39')

for d in [data,data[48:]] :
    for mode in modes_list :
        for i in [True, False] :
            try :
                if i :
                    tmp = AES.new(key, mode=mode, iv=iv)
                    print('iv')
                else :
                    tmp = AES.new(key, mode=mode)
            except (TypeError, ValueError) :
                continue
            clear_data = (tmp.decrypt(d))
            display(Image(data=clear_data))

求助需求

由于对加密技术了解有限,若解密可行,希望明确需要测试哪些解密配置组合(包括密钥处理方式、AES模式、IV/盐的使用、数据截取范围等)。

内容的提问来源于stack exchange,提问作者Songio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:05:45