algorithm - 知道了明文,如何发现使用的加密方案呢?

标签 algorithm encryption

<分区>

我在 DBF 表中有一些 char() 字段,这些字段由项目中的前开发人员加密。

但是,我知道解密几条记录的明文结果。如何确定解密原始数据的函数/算法/方案? 这些是一些示例字段:

对于密文:

b5 01 02 c1 e3 0d 0a

明文应该是:

3543921 or 3.543.921

对于密文:

41 c3 c5 07 17 0d 0a

应该是明文

1851154 or 1.851.154

我相信 0d 0a 只是填充。来自以 win-1252 编码收集的数据(不知道是否重要)

编辑:这是为了好奇和学习。我希望能够理解所使用的加密(看起来很简单,尽管是二进制数据)来恢复我不知道其明文的元组的字段值。

编辑 2: 添加了几个示例。

最佳答案

一般情况下没有简单的方法。这个问题太笼统了。尝试发布这些纯文本 + 加密字符串。

编辑:

  • 为了学习,您可以阅读这篇文章:Cryptography on Wikipedia
  • 如果您真的相信加密很简单 - 检查它是否是字节(或字)级别的异或 - 请参阅以下伪代码

    for (i in originalString) {
    newString[i] = originalString[i] ^ CRYPT_BYTE;
    }
    

关于algorithm - 知道了明文,如何发现使用的加密方案呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/231592/

相关文章:

algorithm - 无等待算法正确性证明的一般方法

Bron-Kerbosch算法的C#实现

algorithm - 消除 "graph"中节点的高效算法?

algorithm - 在 m 个不相交的集合中拆分 n 个加权对象,使得所有集合中的对象总和的最大值最小

通过已知索引、收集、分散重新调整的数组缓存友好复制

java - 使用 RSA 解密字符串会在开头返回额外的零

performance - 如何加速java卡加密/解密(RSA)

python - 在 python 中的文本字符串上使用凯撒密码?

node.js - Golang 从 NodeJS 解密 AES 256 CBC base64

android - 用于 AES 加密的 Gradle 脚本