问题标签 [rc4-cipher]

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 投票
1 回答
4772 浏览

python - Python 的快速 RC4 密码流?

我正在尝试编写一个需要大量加密强度伪随机字节的应用程序。

RC4 密码将是理想的选择;从概念上讲,它轻巧且易于理解。所以,我得到了规范并用 Python 编写了一个 RC4 算法。

它完全按预期工作,但是它像糖蜜一样慢。在我的 Core i7 2.2GHz 上,我只能从算法中获得大约 1MB/秒。

很明显,Python 的解释性质并不是最适合这类任务。我的问题是我不精通 C 编码——我用 C 做的最好的事情是一些 Hello World 的东西和一些文件读写的实验。不管怎样,我对 C 语言肯定不够好,无法使用 Python-C API。

我确实知道 .NET/C#,并且我在 C# 上的 Windows 中编写了相同的算法,并且我能够轻松地从中获得超过 60MB/秒的速度。所以.NET 的 CLR 被优化了很多。但是,Python 应用程序的目标平台是 Unix/Linux。

理想情况下,我不想为了将优化的 RC4 密码放入 Python 应用程序而经历大量的中间层。

由于 RC4 依赖于状态,理想情况下我会使用一个类来执行此操作(这就是我使用纯 Python 实现的方式。)所以,这是我想要做的一小部分:

有什么建议吗?我很想学习 C,但对于这个简单的项目来说,现在它是一个很大的学习曲线。

0 投票
3 回答
338 浏览

c - CipherSaber 漏洞

所以我实现了 ciphersaber-1。它几乎可以工作,我可以解密cstest1.cs1。但我无法让 cstest2.cs1 工作。

输出是:

所以我在初始化状态时一定有一个错误。奇怪的是我可以毫无问题地加密和解密长文本,所以这个错误是对称的。

正如您在rc4.c中看到的那样,我将 rc4 密码实现为可重入单字节算法。

状态存储在 rc4_state 结构中:

使用rc4_init初始化状态:

实际的加密/解密在rc4中完成:

为了完整起见,交换:

我已经为此烦恼了两天多……状态,至少对于“asdfg”键是正确的。你能帮忙的话,我会很高兴。

整个事情可以在我的 github reopsitory 中找到:https ://github.com/rioki/ciphersaber/

0 投票
1 回答
907 浏览

php - How to encode a Javascript string to Unicode and decode it to utf-8 in PHP?

I have tried a couple of ways but it does't work.

Now I have 2 problems that I cannot figure out.

  1. I can't figure out how to encode a string in JavaScript to Unicode and decode using $value = iconv('UCS-2LE', 'UTF-8', $_GET["value"]); in PHP

  2. I encrypted a string in RC4 using JavaScript, encoded in base64, then transferred it to PHP. The result was garbled. I don't know why!

Where should I start?

0 投票
0 回答
791 浏览

mysql - 解密并将 rc4 加密密码移动到 Wordpress wp_user 表?

我将RC4加密数据存储在 MySQL 表中,我需要将其移动到 wp_user 表并存储为 Wordpress 加密密码。这些是密​​码,所以我更愿意安全地移动它们,但我愿意接受任何建议。

这些数据最初是从一个定制的 Wordpress 用户管理插件中存储的,我们已经失去了开发人员。现在我们正试图将用户转移到愿望清单成员解决方案,该解决方案将他们存储为普通的 wordpress 用户。我希望能够更改系统,而不必要求所有用户重置密码。

旧用户数据被加密为与加密密钥连接的散列密码。下面是解密安全数据的代码示例。我有加密密钥,

关于如何将这些数据移入user_pass的任何建议wp_users

0 投票
1 回答
872 浏览

cryptoapi - MS CryptoAPI 给出错误的 RC4 结果?

我正在开发一种产品,该产品需要能够使用使用旧产品创建的文件。其中一些文件包含使用 MS CryptoAPI 以 RC4 加密方式加密的内容。到目前为止,我无法使用其他加密库成功解密内容。经过一些实验,当密钥为 ASCII 时,CryptoAPI 的 RC4 输出似乎是“正确的”(即与其他库一致),但当密钥不是 ASCII(例如密码的哈希值)。

由于我有兴趣消费的所有内容都使用通过哈希从密码派生的密钥加密,所以我现在有点卡住了。我编写了一个小测试来显示包含 3 个测试用例的问题,如下面的代码所示。Botan (C++) 和 CryptoJS (JS) 在输出上总是一致的。但是,MS CryptoAPI 只同意 ASCII 密钥。

在我带着这个问题去 MS 之前,有没有人知道我误解或做错了可能导致这个问题的事情?

另外,我为我残暴的 javascript 道歉。

0 投票
2 回答
873 浏览

rc4-cipher - WEP(Shared Key Authentication),136字节的挑战响应是如何形成的?

我目前正在使用 WEP(共享密钥身份验证)挑战/响应机制,我希望有人可以帮助我。

  1. AP 向 STA 发送质询文本。质询文本为 128 字节
  2. STA 对质询进行加密并将其发送回 AP。这是 Wireshark 中的 136 个字节(数据)。

我的问题:

谁能告诉我 136 字节数据质询响应的组成以及为什么它是这个大小。

为什么不是 Enc([challengetext (128)] + [icv(4)]) = 132 字节?

谢谢。

0 投票
2 回答
185 浏览

c# - 在 Racket 上实现 RC4

我正在尝试将我编写的 RC4 密码的 C# 实现翻译成 Racket 语言。

但是,它们正在生成不同的密钥流。我已经消除了在按键调度阶段写错的可能性;这必须是正确的,因为它们会产生相同的数组S。因此,我专注于在密钥流生成阶段寻找差异。

C#:

球拍:

swap定义为

Sr定义为(define (Sr x) (unsafe-bytes-ref S x))

有什么不同?为什么这些函数会产生不同的输出?在这两种情况下ij都被初始化为 0,并且S是一个完全相同的 256 字节数组。

0 投票
3 回答
3968 浏览

php - 使用 RC4 和 base64 在 arduino 和 PHP 之间进行安全通信

我正在尝试在 Arduino 和 PHP 之间进行适度安全的通信。由于 Arduino 电源不足,我无法使用 SSL。所以我想使用 RC4 加密来自 PHP 的数据,然后接收到 Arduino 并解密。也从 Arduino 加密并发送到 PHP。

问题是从 PHP 发送的加密数据在 Arduino 中不重合。

在 PHP 上,我在 base64 中得到 HesshwkfFk8Q,在 Arduino 中,我在 base64 中得到 nZcwrlpZEr0V。当它们应该相等时的不同结果。

我想我有一个错误的 Arduino RC4 实现。我正在使用这个https://github.com/adamvr/arduino-base64

这是代码:

阿杜诺

PHP

0 投票
1 回答
191 浏览

perl - 在“普通” perl 中模拟 openssl rc4-40

我已经尝试了几个小时没有太多运气,尽管我怀疑这只是我很密集。

首先是设置,这样你就不会试图说服我了。:PI 有一个盒子,它对其 openssl 库有限制,因此它不会以 40 位的加密方式执行 rc4。我有一个使用 rc4-40 的遗留功能,我不能随意将加密升级到更难的位级别,因为它与我无法控制或授权的其他软件对话。

因此,受限于 40 位 RC4 并且不能使用 openssl。任何不回退到 openssl 的 XS/perl 都应该很棒。我一直在玩几个模块,但没有什么是开箱即用的,而且我不擅长这种事情,所以看不到如何自己修改/monkey-patch/fork 密钥/位处理代码。

该代码目前正在执行此操作-

更换它的天真尝试是失败的-

所以我需要一些版本的 perl 代码来匹配 openssl 调用。我一直在尝试所有可以在 CPAN 上找到的合理的东西(cf,不是基于 openssl),包括Crypt::RC4 ( ::XS ) 和Net::SSH::Perl::Cipher::RC4谷歌让我找到了Authen::SASL中一些明显相关和改编的代码——除了它似乎支持使用 rc4-40 进行身份验证之外,它太令人困惑了。我没有尝试Crypt::GCrypt虽然它看起来很有希望,但我看不到正确的用法。受阻。

这 — RC4 不能与 openssl 命令正常工作? - 很有启发性,但最终没有帮助我处理关键/短语或设置。

感谢您的关注!

更新:在阅读了更多关于FIPS 模式的内容后,我认为 Crypt::GCrypt 也将无法正常工作,即使我知道调用是否正确。

0 投票
0 回答
495 浏览

android - 格式错误的语法请求 Android

我正在制作一个登录应用程序来从代码中出现的链接中检索一些信息。我的问题是我在日志文件中收到“400 Bad request。由于语法错误,服务器无法理解该请求”。

此外,该链接使用 SHA1 处理 RC4_128 进行身份验证,使用 RSA 进行密钥交换,但我真的不知道我可以在我的代码中在哪里应用这些协议。

谢谢你的帮助!

这是我的代码:

}