如何以编程方式改进破解替换密码?

2024-04-21

我已经编写(正在编写)一个程序来分析加密文本,并尝试使用频率分析来分析和破解它。

加密文本采用每个字母替换其他字母的形式,即。 a->m、b->z、c->t 等。所有空格和非字母字符均被删除,大写字母变为小写。

一个例子是:

原始输入 - 这是样本消息仅包含小写字母
加密输出 - ziololqlqdhstdtllqutozgfsnegfzqoflsgvtkeqltstzztkl
尝试破解 - omiieeaeanuhtnteeawtiorshylrsoaisehrctdlaethtootde

这里它只正确地得到了 I、A 和 Y。

目前,我的程序通过分析每个单独字符的频率并将其映射到非加密文本中出现在相同频率等级的字符来破解它。

我正在寻找提高程序准确性的方法和途径,因为目前我没有得到太多正确的字符。例如,当尝试破解《傲慢与偏见》中的 X 个角色时,我得到:

1600 - 10 个字母正确
800 - 7 个字母正确
400 - 2 个字母正确
200 - 3 个字母正确
100 - 3 个字母正确。

我使用罗密欧与朱丽叶作为基础来获取频率数据。

有人建议我查看和使用字符对的频率,但我不确定如何使用它,因为除非我使用非常大的加密文本,否则我可以想象与我处理单个字符的方式类似的方法甚至是更不准确,导致的错误多于成功。我还希望使我的加密破解器对于较短的“输入”更加准确。


我不确定这个问题有多大的限制,即你做出的决定中有多少是你需要改变的,但这里有一些评论:

1)频率映射不足以解决这样的难题,许多频率彼此非常接近,如果您没有使用相同的文本作为频率源和明文,那么几乎肯定会出现一些字母缺失文字有多长。不同的材料会有不同的使用方式。

2)如果可以的话,不要去掉空格。这将允许您通过检查您有权访问的字典中是否存在一定比例的单词来验证您的潜在解决方案。

3)如果你真的想深入了解自然语言处理,请研究一下自然语言处理。这本书 https://rads.stackoverflow.com/amzn/click/com/0131873210有你想知道的一切。

Edit:我会首先研究双字母和三字母。如果您对一两个字母相当有信心,它们可以帮助预测后续字母的可能候选者。它们基本上是概率表,其中 AB 是 A 后面跟着 B 的概率。因此,假设您已经解决了给定的字母,则可以使用它来解决它旁边的字母,而不仅仅是猜测。例如,如果您有单词“y_u”,那么对您来说很明显该单词是您,但对计算机而言却不然。如果你还剩下字母 N、C 和 O,二合字母会告诉你 YN 和 YC 非常不常见,而 YO 的可能性更大,所以即使你的文本有不寻常的字母频率(当文本很短时,这很容易) )你仍然有一个相当准确的系统来解决未知数。您可以寻找已编译的数据集,或者进行自己的分析,但请确保使用大量不同的文本,很多莎士比亚作品与一半莎士比亚和一半期刊文章不同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式改进破解替换密码? 的相关文章

  • 高级 Win32 图像文件 I/O?

    我想在 Windows C 应用程序中将图像文件读入内存 什么是一个相当简单的解决方案 也许类似于 IOS 提供的UIImage 我希望支持合理数量的文件格式 我需要为图像处理的位图提供一些低级访问权限 我在互联网上阅读了很多内容 看起来
  • 如何在 C# 事件中区分更改是由代码还是由用户进行?

    我有一个简单的TextBox一开始是空的 我有一个简单的事件 TextChanged 可以知道用户何时更改了其中的任何内容TextBox 但是 如果我自己在代码中对其执行任何操作 该事件就会触发 喜欢设置textbox Text Test
  • Android中从一个应用程序向另一个应用程序发送数据时的加密

    我想将敏感数据从一个应用程序发送到另一个应用程序 我使用 Intent 并通过 Bundle 发送数据 现在 我应该使用加密算法来加密要发送的数据 同时接收器应用程序将解密数据 哪种算法最适合移动平台 我浏览过RSA文档 建议不建议用于长文
  • 有没有比这更快的方法来查找目录和所有子目录中的所有文件?

    我正在编写一个程序 需要在目录及其所有子目录中搜索具有特定扩展名的文件 这将在本地驱动器和网络驱动器上使用 因此性能是一个问题 这是我现在使用的递归方法 private void GetFileList string fileSearchP
  • 使用 C# 使用应用程序密码登录 Office 365 SMTP

    在我们的 Office 365 公司帐户中实施两步身份验证之前 我的 C WPF 程序已成功进行身份验证并发送邮件 我使用了 SmtpClient 库 但现在我必须找到另一个解决方案 因为它不再起作用 我找不到任何使用 O365 应用程序密
  • 浮点提升:stroustrup vs 编译器 - 谁是对的?

    在 Stroustrup 的新书 C 编程语言 第四版 第 10 5 1 节中 他说 在执行算术运算之前 整数提升用于从较短的整数类型创建整数 类似地 浮点提升是用于从浮点数创建双精度数 我用以下代码确认了第一个声明 include
  • 身份未映射异常

    System Security Principal IdentityNotMappedException 无法转换部分或全部身份引用 该错误仅在应用程序注册后出现一次 当 SecurityIdentifier 无法映射时 例如 返回 Ide
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • 控制台应用程序 .net Core 2.0 的配置

    在 net Core 1 中我们可以这样做 IConfiguration config new ConfigurationBuilder AddJsonFile appsettings json true true Build 这样就可以使
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • 抽象类和接口之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 接口与基类 https stackoverflow com questions 56867 interface vs base class 我不明白抽象类和接口之间的区别 我什么时候需要使用哪种字体
  • 在 C# 中赋值后如何保留有关对象的信息?

    我一直在问我的想法可能是解决方案 https stackoverflow com questions 35254467 is it possible in c sharp to get the attributes attached to
  • 如何在 C++ 中使用 PI 常数

    我想在一些 C 程序中使用 PI 常数和三角函数 我得到三角函数include
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • 改进C++逐行读取文件的能力?

    我正在解析大约 500GB 的日志文件 我的 C 版本需要 3 5 分钟 我的 Go 版本需要 1 2 分钟 我正在使用 C 的流来流式传输文件的每一行以进行解析 include
  • SSBO 是更大的 UBO?

    我目前正在 OpenGL 4 3 中使用 UBO 进行渲染 以将所有常量数据存储在 GPU 上 诸如材料描述 矩阵等内容 它可以工作 但是 UBO 的小尺寸 我的实现为 64kB 迫使我多次切换缓冲区 减慢渲染速度 我正在寻找类似的方法来存
  • C# - 为什么我需要初始化 [Out] 参数

    我有几个从本机 dll 导入的方法 使用以下语法 internal static class DllClass DllImport Example dll EntryPoint ExampleFunction public static e
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • 最后从同一类中的其他构造函数调用构造函数

    我在这里读到可以调用另一个构造函数从同一类中的另一个构造函数调用构造函数 https stackoverflow com questions 829870 calling constructor from other constructor

随机推荐