问题标签 [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 回答
794 浏览

java - Vigenere解密奇数

我编写了一个使用 Vigenere 密码进行编码的 java 程序,加密工作正常,但是对于某些特殊情况,解密并不适用。

例如,如果纯文本是 'k' 并且密钥是 'y' 它正确地产生密文 'i' ((10 + 24 = 34 % 26 = 8))

但是,当解密密文是“i”并且密钥是“y”时,我得到((8-24)=-16%26=-16)),即使它是肯定的,也会是 Q。什么时候应该正确解密回到“k”,即 10。

有谁可以帮我离开这里吗?如果需要,我可以发布更多代码。

---链接到 wiki Viginare 密码算法http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher ---

0 投票
2 回答
1112 浏览

haskell - 在 Haskell 中使用 vigenere 密码对文本进行编码时遇到问题

我正在从事一个编码项目,我们需要在 Haskell 中编写一个 vigenere cypher。我已经花了几个小时并没有取得什么进展,但我被困在一个特定的部分。到目前为止,这是我的代码:

我的问题出在 Encoding 函数中:我希望该函数在键和应该编码的消息的每个索引处检查和更改字符。我的印象是我所拥有的应该可以工作,但是当我运行它时,由于 | 在:(键!!a)| 一个 <- 作为)。我不知道如何解决这个问题,更不用说如何让程序像我想要的那样检查/更改每个索引处的字母了。有人可以帮忙吗?

0 投票
3 回答
174 浏览

c - C - 字符串数组到字符数组

在 C 中,我需要从中获取一个字符串参数argv []并将其放入另一个数组中,以便我可以遍历字符。我该怎么做呢?

(这是为了实现 Veginre Cypher 仅供参考)

0 投票
1 回答
1546 浏览

c++ - 将密文拆分为子字符串(vigenere cipher)

我正在尝试实现一种算法,该算法将猜测 vigenere 密码的关键字的可能密钥长度。

我正在寻找每个可能的密钥长度的重合索引的步骤,但我无法找到将密文拆分为子字符串的方法。

也就是说,我正在尝试采用这样的某个密文

ERTEQSDFPQKCJAORIJARTARTAAFIHGNAPROEOHAGJEOIHJA(这是随机文本,这里没有编码信息)

并将其拆分为不同的字符串,如下所示:

等等。

有任何想法吗?

更新

我现在尝试实现自己的代码,这就是我所做的:

就像我在下面提到的那样,我的输出仅反映基于第一个字符的子字符串(即,如果 keylength 为 2,则为 1、3、5、7、9,但不是 2、4、6、8 , 10...)

0 投票
1 回答
3190 浏览

php - PHP 中的 Vigenere

谁能帮我在 PHP 中修复这个 Vigenere 密码?

很抱歉撕掉了代码,这是我已经剖析了几个小时的地方 - 试图修复!

无论如何,当代码应该输出“Abc”时,它会输出“Ace”。

有一些奇怪的双重偏移,我没有数学大脑来解决!谢谢阅读。

该代码源自AutoHotkey 脚本中的此处- 我已尝试将其转录。网上有 PHP Vigenere 示例(虽然没有在Rosetta Code上,很奇怪!).. 但无论如何,这个被修改为接受小写以及标准大写。谢谢。

0 投票
1 回答
1148 浏览

java - 如何将 Vigenère 密码与斐波那契相结合

我有 Vigenère cipher java 代码,它运行良好,但我想用斐波那契公式修改此代码,所以加密结果就像一次性填充方法.. 这是代码:

我应该如何处理这段代码以与斐波那契相结合?谢谢

0 投票
1 回答
8505 浏览

java - 维吉尼亚密码实现

我必须实现Vigenère cipher的变体。我得到了没有问题的加密部分,但我在解密代码中有一个错误,我不明白我做错了什么。

要求是:

  • 键只能包含A- Z(大写)

  • 关键字符的代码值为 A 为 0,B 为 1,...,Z 为 25

  • 如果代码 < 32,则不编码字符(保留控制字符)

  • 加密字符码=原始字符码+关键字符码

  • 最终加密字符必须介于 32 和 126 之间,因此如果最终加密字符 > 126,则必须通过将值加上 32 然后减去 126 将其带回到 32 - 126 范围内

加密代码:

解密代码:

示例(带键ABCDEFGHIJKLMNOPQRSTUVWXYZ):

  • 原来的~~~~~~~~~~~~~~~~~~~~~~~~~~

  • 加密~!"#$%&'()*+,-./0123456789

  • 解密~('~' 后跟空格)

编辑:

这是我用于测试的代码(它测试从 0 到 126 的每个字符作为字符串重复):

0 投票
2 回答
14018 浏览

cryptography - 如果密钥长度已知,则确定 Vigenere Cipher 的密钥

当您知道密钥的长度但不知道密钥的长度时,我很难理解 Vigenere Cipher。如果我知道密钥,我可以破译文本,但我对如何计算出密钥的实际含义感到困惑。

举个例子,我得到了密文和 6 的密钥长度。这就是我得到的全部内容,我被告知密钥是任意一组字母,不一定要组成英语中的一个单词,换句话说,一组随机的字母。

有了这些知识,我到目前为止只将密文分解为 6 ​​个子文本,每个子文本都包含由密钥字母加密的字母,因此第一个子文本包含从第一个字母开始的每 6 个字母。第二个每 6 个字母以第二个字母开头,依此类推。

现在我该怎么做?

0 投票
2 回答
1118 浏览

java - Java vigenere 密码性能问题

我制作了一个 vigenere 加密/解密程序,它似乎按我的预期工作,但是在一个非常大的文本文件(大约 500,000 个字符)上运行我的加密/解密需要 2-4 分钟。我查看了我的代码,看不到哪些操作可能会减慢它的速度。任何人都知道如何加快速度?

代码:

在运行加密之前,我有一个使用扫描仪将文本文件读取到字符串的方法。这个字符串加上一个预定义的密钥用于创建加密文本。

谢谢。

回答

感谢 RC - 这是我的字符串连接花时间。如果其他人有兴趣,这是我更新的代码,现在可以快速运行:

0 投票
2 回答
1400 浏览

python - 对于 Kasiski 测试,如何在 Python 中实现 26x26 表

这是表格http://en.wikipedia.org/wiki/File:Vigen%C3%A8re_square_shading.svg

如何在 Python 中实现这个表?这样做的方法是什么?

以及有关如何检查例如 Row: L & Column G 的任何线索都成为 R 欢迎。