encryption - 如何找出使用的密码算法?
问题描述
我有两个文件:
- 一个是原始纯文本文件,首先使用 ZStandard 压缩,然后使用 Base64 编码
- 一个基本上是相同的文件,但它在压缩之后但在编码之前被加密。我知道使用的密码有一个 32 字节长的盐。
做出的假设:
- 我假设使用的算法是 aes-128。为什么?因为我实际上有四个文件(两对)并且两个密码的最大公约数是 16,所以我至少可以假设一个 128 位的块大小。而AES,因为它是最常见的
- 密码不是使用 ECB 生成的,因为每次我让它生成时,相同的纯文本都会产生不同的密码。
我可以提供一对密码和盐。如果需要,我还可以提供多对都具有相同的纯文本。
这是做什么用的:我目前正在实现一个 golang 库来与 TeamSpeak 3 ServerQuery 进行通信。它提供了创建服务器快照的可能性,您可以使用密码对其进行加密。我想用密码和盐来解密它们以解析和操作它们。
我还没有弄清楚,哪种模式与什么 IV 一起使用。我尝试了许多不同的可能性,包括但不限于:
- 使用 MD5 对密码进行哈希处理并将其用作密钥
- 使用 MD5 对密码进行哈希处理
- 对密码进行哈希处理,然后使用 MD5 对密码哈希和盐进行哈希处理
- 在密钥哈希中使用盐的前半部分,将后半部分用作 iv,反之亦然
在这一点上,我几乎完全没有想法。如果有人能指出我的方向,将不胜感激。
制造商
解决方案
推荐阅读
- regex - 检查字符串是否与 Unix 中的正则表达式匹配
- rust - “从我们的对等方收到致命警报消息” Cargo 构建上的 SSL 错误
- google-apps-script - Google Apps 脚本正则表达式返回 null(数据抓取)(谷歌表格)
- azure - 无法使用管理 API 获取虚拟机的内存使用情况
- xml - 使用 XPATH 选择两个处理指令之间的所有文本节点
- python - 如何将数据框转换为宽格式?
- wordpress - 如何在 Wordpress DB 中解码预订日期
- css - 使用css在pdf中显示页面计数器
- javascript - Quill.js 链接格式是如何实现的?
- python - 使用 pandas.read_excel() 读取多张工作表时指定多个转换器字典