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

perl - 在 Perl 中,使用 RC4 时我无法取回加密文本

我有一个带有 RC4 加密凭据的文件,负责将此类凭据写入文件的代码如下:

所以那段代码会返回类似:3F9FDCE3891C6B8851 但如果我尝试以下操作:

我期待看到localhost,但相反,我得到了一堆字节,那么我将如何取回原始文本?

我已经用我的密码和我的十六进制编码字符串在线检查了 RC4 解密器,并且在线 RC4 解密器确实返回localhost,所以我确信加密的字符串是正确的。

谢谢!

PS:上面的例子在一个孤立的环境中工作,但是当涉及到我的脚本时它没有。我无法取回原始字符串。

0 投票
1 回答
409 浏览

.net - .net 上的 RC4 用于在 Ruby 中解密

我需要使用已知的文本密钥在 .net 应用程序中加密文本字符串,然后使用相同的已知密钥在 Ruby 中对其进行解密......但是我无法做到这一点。我认为这与字符串编码问题有关。.Net 到 Ruby RC4 示例已被证明是难以捉摸的。

我在 Ruby 端接收到无效解密。加密/解密在 .net 实现上运行良好。但是当我将加密的值复制到 Ruby 实现并使用相同的密钥时,我没有得到我的原始值。

下面是我的 .net RC4 实现(这不需要最高级别的安全性,但有些很好):)

在红宝石方面,我正在使用 ruby​​-rc4 https://github.com/caiges/Ruby-RC4

0 投票
6 回答
46095 浏览

java - RC4加密java

您好,我正在尝试在 Java 中实现 RC4 算法。我发现这段代码作为一个示例,可以帮助我理解这个想法:

我有几个问题:

  1. 为什么int在上面的代码中纯文本是一个数组?

  2. 当我测试这段代码时,我得到了奇怪的结果,有人可以向我解释一下吗?这是我要测试的代码:

    /li>

结果如下:(原文和回文不一样)为什么???

0 投票
1 回答
8491 浏览

c - 如何从解密和加密的数据中找到 RC4 密钥?

我在文档中进行了一些转储分析,显示了一堆加密数据,以及由此产生的解密数据。解释了使用的算法(简单的 RC4)。唯一缺少的信息是用于从加密数据到解密数据的密钥。

我正在用这个文档材料编写一个自动化测试。我可以选择自己的一些密钥并从明文中重新创建加密数据,但我想知道是否有任何简单的密码分析方法可以找到用于加密原始数据的原始密钥。

蛮力方法可能是可能的,因为密钥非常小,但我更感兴趣的是知道是否存在任何更聪明的方法。

以下是我当前的 C 加密代码(使用 OpenSSL):

0 投票
1 回答
3548 浏览

javascript - 带有 RC4 的 NodeJS Crypto 产生空白

我有一个生成 RC4 加密字符串的 php 函数。我想使用 Node 解码该字符串 - 最好使用内置的 Crypto 模块。但我不能这样做 - 我只是得到一个空白字符串。

PHP 代码在这里http://code.google.com/p/rc4crypt/

我的 JS 代码是

我没有得到任何输出。我已经使用 openssl list-message-digest-algorithms 检查了我的 OpenSSL 实现是否具有 RC4

我在 OSX 10.8 上,最新节点。

我愿意使用另一个模块来解密 - 我尝试了 cryptojs 模块,但没有弄清楚如何让它工作 - 当我尝试 RC4 时给了我错误。

谢谢

0 投票
1 回答
4734 浏览

c# - RC4 算法:无法加密/解密客户端使用 Javascript 和服务器 c# 的数据

我需要在 IIS(basicHttpBinding)中托管的 .NET 4.0 WCF 应用程序和使用 JavaScript RC4 算法实现加密/解密数据的内部客户端应用程序系统之间传递加密(和 base64 编码)字符串数据。

到目前为止,我还没有成功地将客户端加密的数据发送到服务器,然后在服务器上对其进行解密(或相反——客户端解密从服务器响应接收到的数据)。我们已经尝试了互联网上 JavaScript 文件(以及 AES)中的一些 RC4 算法变体。

我已将客户端使用的 RC4 算法版本转换为 C#(JavaScript 文件位于:https ://gist.github.com/2185197 )。我创建了一个 html 页面,以纯客户端方式测试 JavaScript 加密/解密功能。这行得通。同样,通过单元测试,我已经确定 c# Encrypt / Decrypt 也适用于 .NET WCF 服务。通过这些测试,没有 base64 编码/解码。

使用 c# RC4 算法,我可以成功处理通过线路发送的数据的加密/解密,其中加密数据是 base64 编码并且客户端是 .NET 应用程序(使用与服务器相同的 C# 算法实现类)

我逐行检查了客户端 JavaScript (Firebug) 和 C# (Visual Studio) 算法,验证变量值是否匹配。一切都匹配,除了代码将整数值转换为字符串(通过字符)。这里的结果是不一致的。下面是问题线。

下面是每个实现的代码行。

C#: var charX = Convert.ToChar(26).ToString();

JavaScript:

Var charX = String.fromCharCode(26);

一些视觉差异可能仅仅是由于 Firebug 和 Visual Studio 的渲染能力。[我的理解是它们都应该呈现 UTF8 编码的字符串]。我读过 JavaScript 引擎和 JavaScript 语言的编码不同。因此,微软已经实施了一个修复 [https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode],我试图实施但没有成功。我可能需要在 C# 代码中实现一些编码;但目前还没有确定

根据上述整数值 26 的示例,当检查变量值时,C# 代码会显示一个左箭头。JavaScript 显示一个空格。对于 JavaScript,这与通过 W3Shools 完成的测试一致 (http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_fromcharcode)

我是否需要在 .NET 应用程序中执行某种编码以确保字符处理在 JavaScript v C# 中是一致的?

提前致谢。

下面是 JavaScript 代码:

下面是c#代码:

0 投票
3 回答
3760 浏览

stream - rc4 密钥恢复(2 条消息,相同的部分密钥)

我有两条使用相同的部分密钥加密的消息。例如:

如果已知 C1 和 C2 至少可以恢复“XXXXYYYY”的部分密钥,那么 RC4 是否有可能,因为它永远不会改变?

0 投票
2 回答
449 浏览

base64 - CFML 中 toBase64() 的不同输出在 2 台不同的机器上

最终编辑:已解决,将本地开发人员升级到 railo 3.3.4.003 解决了该问题。


我必须对一些字符串进行 RC4 加密并将它们进行 base64 编码,并且我遇到了一种情况,即相同的输入将在 2 个不同的开发设置上生成不同的输出。

例如,如果我test2@mail.com
在一台机器 (DEV-1) 上有一个字符串,我将得到:DunU+ucIPz/Z7Ar+HTw=
而在另一台机器 (DEV-2) 上,它将是:DunU+ucIlZfZ7Ar+HTw=

首先,我通过此处找到的函数对其进行 rc4 加密。接下来我将它喂给:toBase64( my_rc4_encrypted_data, "iso-8859-1")

据我所知,两者的 rc4 加密输出是相同的(或者我遗漏了一些东西)。下面是两台机器的 SERVER 变量以及加密函数。

这是我们必须忍受的事情,还是我可以做些什么来“妥善处理”(因为缺乏更好的词)。我担心将来这会咬我,想知道它可以避免。

编辑 1: my_rc4_encrypted_data.getBytes() 的输出返回:dev-1:

开发-2:

(没有编码传递给getBytes()

DEV-1(远程)

DEV-2(本地)

RC4 功能:

0 投票
1 回答
118 浏览

encryption - Python - 以 16 行输出

有什么办法可以将我的输出放在 16 行中?这些行也需要有 16 列垂直排列。我想在不导入任何东西的情况下做到这一点。

0 投票
1 回答
218 浏览

string - 如何使用一组数字作为 RCA 加密的密钥

我想知道如何使用一组数字作为 rc4 加密的密钥。根据互联网和维基,KEY 实际上是一串字母,但使用了字节。但在我的程序中,我需要使用 6 位数字作为 KEY。我应该将它转换为字符串还是如何。

Key Sheudling 算法如下所示。

我该如何修改代码,或者我应该将数字转换为字符串。