问题标签 [vigenere]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2019 浏览

math - Vigenere Cipher - 解密(手动)

这是一个 Vigenere 密文

巧合指数给出了六 (6) 的变化:我知道这是正确的(我使用在线 Java 小程序使用密钥“QUARTZ”解密整个事情)。

然而,在这个问题中,我们只知道密钥的第一个和最后两个字母——“Q”和“TZ”。

到目前为止,我已经使用这个很棒的小程序将密文分成了多个切片。所以第一个切片是0、k、2k、3k、4k;第二个是1,k + 1,2k + 1,3k + 1;等等。

我的想法是计算每个块中频率最高的字母,希望最常见的字母能给我一些线索,让我知道如何找到“U”、“A”和“R”。但是,这些块中最常见的字母是:

这会产生 QCNVHM 或 QUNVHM(慷慨),它们都与 QUARTZ 不相近。有在线小程序可以解决这个问题,所以它不能太短的文本从块中产生合适的频率计数。

我想我一定是以错误的方式处理这个问题。我只是希望你们中的一个人能够提供一些关于我哪里出错的线索。

ps 这是一个数字加密类。

0 投票
1 回答
937 浏览

encryption - 非ASCII格式的文本文件的解密

我收到了一个加密文件,其中明文的格式是“常见的(但现在不是很常见)”。~80000 字节
它已使用我将描述为带有修改加密表的 Vigenere 密码进行加密。一个字节的密钥和一个字节的明文映射到一个字节的密文。密钥串具有一定的长度,因此用于加密的密钥字符在密钥串中循环。
密钥仅包含字母数字字符。

到目前为止,我通过找到密文中重复三元组​​的起始位置的最小公约数来确定密钥长度为 30/60。Vigenere 的标准。

现在,我一直在猜测密钥的可能字符,方法是观察解密的字节是什么,并消除它们超出可接受范围的可能性(因为 32-126 是可见的,没有 16-31 之间的值等)
这个第一部分工作,它有一个小密钥,明文是直接的 ASCII。

当我尝试使用较大的文件和“新文件格式”时,它会拒绝所有可能的字符。
这消除了 ASCII、Ascii85、Base64、windows-1252、utf-7、QP 和 uuencode,因为它们都依赖于 ASCII 字符集。我还为拒绝所有密钥的 EBCDIC 和 ISO8859-1 制作了过滤器。Utf-8 也失败了,因为没有密钥会使所有字节都以 0、10、110、1110、11110、111110 或 1111110 开头。

我没有尝试过的其余字符编码我怀疑是 UTF-16,32,1,我不确定如何过滤。

我的问题是:

  • 还有其他我忘记的字符编码吗?
  • 是否有可能我过滤掉了太多并且应该允许一些超出范围的字符滑过?
  • 文件格式可能意味着字符编码以外的东西吗?如果是这样,我该如何协调它与过滤器仍然破坏 ASCII 字符?
  • 如果文件格式意味着压缩或存档怎么办?

这是我使用的过滤代码,过滤器是可变的,具体取决于我要筛选的内容。

0 投票
3 回答
6222 浏览

python - 无钥匙解决vigenere代码 - python

这是我必须弄清楚的问题:

“一条消息被课堂讨论的Vigenere加密方法加密,其密文EQNVZ被截获。破解密码。假设密钥与消息长度相同,消息和密钥仅由大写字母组成。”

有没有办法在python中做到这一点?我知道有一种方法可以在 python 中制作密文,但有没有办法走另一条路?

0 投票
2 回答
521 浏览

python - Python 3:不是生成所有排列,而是生成长度为 r 的所有非重复组合?

我正在尝试生成长度为 r 的 Vigenere 密码密钥的可延迟迭代集合。我知道itertoolspermutations()方法。但是,这会生成诸如ABCD, ABCE, ABCF... 之类的键,但它永远不会执行诸如AABC.

所以基本上,我需要不重复的元组或字符串(也就是说,可以将重复的键切成两半以获得相同的两半),但可以包含重复的字符。好例子:AABABA,不是AABAAB

我怎样才能创建这样一个集合,它不会生成这样的密钥,并且是延迟迭代的,所以当我想探索超过 3 个字符的密钥时,我不会炸毁我的 RAM?

0 投票
3 回答
9474 浏览

java - 用于所有 UTF-8 字符的 Java 中的 Vigenère 密码

我有这个简单的函数,用于通过 Java 中的 Vigenère 加密字符串。我省略了解密,因为这只是计算新值的行中的“-”而不是“+”。

但此功能仅适用于普通字母 AZ。如何更改函数以使其支持小写字母、大写字母和所有其他 UTF-8 字符?

非常感谢您的帮助!

0 投票
3 回答
26442 浏览

java - Where can I find the Java source code for the Vigenere cipher?

in my app I wanted to implement some enciphering. Therefore I need the code for the Vigenere cipher. Does anyone know where I can find that source code for Java?

0 投票
2 回答
193 浏览

javascript - For 循环内的 For 循环内的 For 循环内的 For 循环... = 问题

所以。我在 JS 中的其他 for 循环中有 4 个 for 循环,并且我的代码出现(FireBug 同意我的观点)我的代码在语法上是合理的,但它拒绝工作。我正在尝试通过使用巧合索引和 Kappa 测试来计算 vigenere 密码中的密钥长度<-如果有帮助的话。

我的主要问题是,当我尝试运行 keylengthfinder() 函数时,由于 Firefox 的内存使用量超过 1GB,CPU 超过 99%,因此该任务的计算量似乎太高,无法运行 Javascript。任何关于如何解决这个问题的想法,即使需要更长的时间来计算,也将不胜感激。这是相同代码的链接 - http://pastebin.com/uYPBuZZz - 很抱歉此代码中的任何缩进问题。我在将其正确放置在页面上时遇到问题。

0 投票
3 回答
771 浏览

c - KERN_INVALID_ADDRESS 让我难过

我在尝试运行调试器时不断收到此错误:

这是我的代码:

我可以毫无错误地编译代码,并且它可以正常工作。我正在运行调试器以进入for循环并查看数学在做什么以更好地理解它。

0 投票
1 回答
109 浏览

c - 数学运算麻烦

对某些人来说,这似乎是一个非常简单的解决方案,但我一直试图弄清楚它有一段时间了,它困扰着我。

我很难想出解决方案数学从来都不是我的强项。如果和的值char c最后应该等于 79 。p[i]=72 or 'H's2[i]=5

此操作非常有效,但我试图了解发生了什么,所以我尝试使用普通计算器进行操作并不断得出错误的答案。正确的操作顺序到底是什么?值应该是什么?

这是我到目前为止有效的完整源代码:

我做这个操作的方式是:

我显然知道我的数学是错误的,但我认为当我通过调试器运行操作时我做对了,sum = 14并且char c = 79 or 'O'应该这样做。

0 投票
2 回答
1428 浏览

c - Vigenere 加密

我写了一些代码,其中使用了 Vigenere 加密。这是一个用于加密/解密任何文件的简单程序。

但是这段代码并不总是能很好地工作。我不明白为什么会发生。我对每个字节进行异或。我已经在此类 TXT 文件上测试了此代码。我的错误在哪里?