问题标签 [one-time-pad]

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 投票
6 回答
16320 浏览

java - 一键通,加解密

我正在尝试学习密码学并且一直在尝试这个练习

编写一个程序(最好是 Java)来生成一次性便笺簿,这是一个包含所有随机数据的相对较大的文件(例如 1 MB)。该程序还应该能够根据生成的一次性密码对文件进行加密/解密。

提示:使用以下测试向量检查您的程序是否正确加密。

明文 (ASCII):每个云都有一线希望
OTP (HEX):6dc72fc595e35dcd38c05dca2a0d2dbd8e2df20b129b2cfa29ad17972922a2
密文 (HEX):28b14ab7ecc33ea157b539ea426c5e9def0d81627eed04cc588

我尝试使用随机数生成器生成一次性填充,因为我需要将它们转换为 HEX 形式。我很确定我很困惑或者没有以正确的方式解决它

以上是我的一次性密码本,我想知道如何使用一次性密码本实现加密并对其进行解密。

0 投票
0 回答
263 浏览

encryption - 一次性填充密码中的异或比较

我正在使用一次性填充密码。当我们在两个文本 (m1, m2) 上使用相同的键时c1⊕c2 = m1⊕m2。为什么不一样?我错过了什么?

这是示例:

0 投票
0 回答
197 浏览

python - 使用生成的随机位的 One-Time Pad 用户输入文本

我尝试在 python 中实现一个非常简单的 OTP,但由于某些我不明白的原因,我收到一条错误消息:“ ValueError: Incorrect AES key length (4 bytes) ”。我也是python和OTP的新手!

这是代码:

0 投票
0 回答
97 浏览

java - 如何为 One Time Pad 密码删除空间中的字母?

我在网上某处找到了这段代码以供参考,但这让我很困扰。结果是正确的,但不知何故,这个过程有问题。

输出

  • 纯文本:帮帮我
  • 关键字:QMMNQAB
  • 加密:gdko ld
  • 解密:帮帮我

所以你可以在输出中看到第二个“Q”键不应该在那里,因为它应该是一个空格。我怎样才能删除它?非常感谢您的回答谢谢:)

0 投票
0 回答
56 浏览

python - 自生成密钥程序

代码背景:以下是我正在处理的代码。这段代码的目的是使用种子生成一个长伪随机密钥。稍后会使用该密钥进行加密。截至目前,如果使用单个字符,它将吐出一个 23 个字符的字符串,该字符串对该字符是唯一的。希望将密钥的大小扩大到一个可用的大小,从而生成一个伪 OTP。它还设置为处理所有可键入的 ASCII 字符。

它实现这一点的方法是使用修改后的 Vigenere Cipher 和 SEED,将其自身作为第一个密钥,下一个密钥使用自身生成下一个密钥,依此类推。只要此密钥与消息的大小相同或更大,它实际上就是一个 OTP。值得注意的是,我从这个概念的早期实验中发现,[message letter]=/=[key letter] 或者它会锁定那个字符,最终密码会单独加密到那个字母,使其无法解密。或者,至少当我使用标准的 Vigenere 表手动完成时发生了这种情况。

问题:我尝试了两种从单个字符增加种子大小的方法,看看是否可以生成更长的密钥。方法 2 使用 2 个变量作为键,并且在整个运行过程中只生成来自 BKEY 的字母。方法 3 旨在使用任何大小的数组,它可以。然而,产生的键只适用于重复之前的数组长度。

如果有人可以牵手,甚至只是提供一些建议,我将不胜感激。

0 投票
1 回答
946 浏览

brute-force - 如何保护 OTP(一次性密码)免受暴力攻击?

我们的应用程序中有一个功能要求在执行某些功能之前提供六位数的 OTP。它通过 SMS 发送,有效期为 5 分钟。有一个内部渗透测试表明这很容易受到暴力攻击。我们可以以编程方式做些什么来防止这种情况发生?

0 投票
1 回答
70 浏览

python - 等效字符串在 Python 中不给出等效的位串

我目前正在为一项作业制作加密程序,但我无法解密。其原因是密钥是由随机生成的位串制成的字符串,但是当将密钥转回位串时,我得到一个不同的位串。在检查并发现将密钥转回二进制后的位串比用于制作密钥的位串短后,我意识到了这一点。

输出:168 168 真假

0 投票
1 回答
203 浏览

encryption - 数字的一次性密码

可以为数字实施一次密码吗?如果是的话,你能告诉我同样的算法或工作代码(最好是java)吗?

另外,一次性密码和异或密码有什么区别。

0 投票
2 回答
502 浏览

security - 解密图像

我需要解密一个 png 文件。我无法打开/查看图像,因为它已加密。当我在命令行中对图像运行文件命令时,它说它是“数据”类型。

我知道图像是使用 XOR 加密的(如一次性填充的情况),使用我不知道的密钥。

我只有图像文件,没有其他信息。我应该如何找出密钥?

0 投票
0 回答
42 浏览

cryptography - 未知的一次性键盘键

我正在上这个新的密码学课程,我有点卡住了。这是问题所在:

“你知道,由 4 个字符组成的‘好’这个词(比如消息 m)已经通过 OTP 加密为已知的密文 c1。虽然你不知道密钥 k。消息重复使用相同的密钥 k 来加密另一条消息(比如说 m1)并计算已知密文 c2。证明你可以找出未知消息 m1。

有什么建议么?先感谢您。