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

cryptography - RC2 密钥时间表

有人能解释一下 RC2 密钥时间表是如何工作的(尤其是一开始)吗?我知道它使用小端,但我的实现不适用于除“0000 0000 0000 0000”之外的任何键

我假设与密钥有关的第一件事是将其更改为

是的,我知道 RC2 甚至不再使用了,但我仍然想知道

0 投票
0 回答
1468 浏览

objective-c - 使用 CCCrypt 进行 RC2 解密

我正在尝试仅使用 64 个有效位来解密 RC2 数据。

由于我只能拥有 64 位,因此我的理解是,在调用之前,CCCrypt我必须使用一种方法将密钥减少到这么多位。由于我在 Apple 的 CommonCrypto 库中找不到任何此类方法,因此我正在使用我找到的这个密钥调度方法。

这些是方法的参数:

对于实际的解密部分,我正在尝试使用一个使用 AES 256 的示例。这是我到目前为止所拥有的:

当我运行它时,cryptStatus其值kCCDecodeError记录为:

@constant kCCDecodeError 输入数据未正确解码或解密。

我发送to128的原因是因为我的密钥长度为 64 个短整数,我相信 1 个短整数等于 2 个字节。因此,.keyLengthCCCrypt64 * 2=128

我不知道我需要为该选项发送什么。我刚刚使用kCCOptionPKCS7Padding了取自 AES 示例的内容。其他可用选项是kCCOptionECBModeCBC。当我尝试其他两个选项时,cryptStatus确实变为kCCSuccess,但数据始终为null. 我认为它错误地报告了成功。

当我说我“手动检查某些内容的准确性”时,我的意思是我将这些点的密钥和密码与成功运行的 JavaScript 实现进行了比较。

如何使用 Apple 的库(即 CommonCrypt)解密 RC2 数据?

0 投票
2 回答
11138 浏览

security - 64 位 RC2 的安全性如何?

在加密中,如果两个对称算法的密钥大小相等,它们的安全性是否会被认为是相等的?(即 64 位 RC2 算法是否提供与 64 位 AES 算法相同的安全性?)

使用 64 位 RC2 算法有多安全(或不安全)?

我预计暴力攻击需要多长时间才能破解这种加密?

使用此算法可以保护哪些类型的数据?(例如,我猜信用卡信息不能用这个算法加密,因为算法不够安全)。

0 投票
1 回答
1186 浏览

c# - RC2 Crypt SQL Server 和 C#

他正在研究如何在我的应用程序中实现加密算法。他见过RC2。

一方面,我设法从 c# 加密和解密。

另一方面,我还设法从 SQL Server 加密和解密。

但是从 SQL Server 加密的内容,我无法从 C# 解密它,而且当你从 C# 加密时,我也无法从 SQL Server 解密。

当然加密密钥和初始向量是相同的。

我猜想使 SQL 服务器保持数据加密的原因不仅仅是二进制加密,而是增加了一些东西。


编辑:C#代码:

对于加密我使用:

T-SQL 代码:

加密“Perico”T-SQL的二进制结果:0x009C6828879054489426381EFD2E3FD501000000266B3AF2ED7029C1F567AF8119C5D458FCDE1E984B2262A0

C#:

0x9FC66B77905837F5

谢谢!

0 投票
1 回答
427 浏览

c# - RC2 加密和数据包分隔符

我正在开发一个客户端/服务器应用程序,并且两者之间的通信是加密的。我正在使用 RC2 加密,因为客户端是嵌入式的并且 CPU 资源是有限的。我正在使用 System.Security.Cryptography.RC2CryptoServiceProvider.CreateDecryptor/CreateEncryptor 方法来创建加密类。

我的问题源于 TCP 倾向于将消息拆分为多个数据包。因为整个消息可能不会在一次 Socket.Receive() 调用中到达,所以我需要在出站数据包的末尾包含一个数据包分隔符,以便接收端可以知道数据包的结束位置(当前使用 0x0D)。但是,RC2 加密最终会在负载中的某处创建 0x0D,导致接收端将数据包解释为已完成。当它试图解密这个被截断的数据包时,它失败了。

关于通常如何处理这类事情的任何建议?或者甚至只是一个已知 RC2 加密不会产生我可以用作分隔符的字符?

0 投票
0 回答
1011 浏览

c# - Asp.Net 中使用 20 字节密钥的 RC2 加密

我被要求在 Asp.Net 站点中实现 RC2 加密/解密。有一些数据需要安全地与其他系统共享,这是已经在使用的加密方法。我已经尝试了许多不同的方法,但是所有实现都有默认密钥长度,即使算法允许可变密钥长度( http://en.wikipedia.org/wiki/RC2 )也无法更改。

我正在寻找我是否在分析中忽略了某些内容,或者您​​是否可以推荐更好的选择。

.Net 方法

我的第一种方法是尝试使用 .NET RC2CryptoServiceProvider。这不起作用,因为密钥长度是有限的。

http://msdn.microsoft.com/en-us/library/system.security.cryptography.rc2.keysize.aspx

“该算法支持以 8 位为增量从 40 位到 1024 位的密钥长度,但 RC2CryptoServiceProvider 实现仅支持以 8 位为增量从 40 位到 128 位的密钥长度。”

OpenSSL.Net 方法

我尝试使用 OpenSSL 的 .NET 包装器。http://sourceforge.net/projects/openssl-net/

它运行良好,但似乎只支持默认加密功能,并且无法更改我发现的密钥长度。

直接调用 OpenSSL

我还尝试通过创建进程并获取输出来通过命令行调用 OpenSSL。我遇到了同样的问题,即内置函数不允许可变密钥长度。

http://www.openssl.org/docs/apps/enc.html

enc 程序仅支持具有某些参数的固定数量的算法。因此,例如,如果您想使用带有 76 位密钥的 RC2 或带有 84 位密钥的 RC4,您就不能使用这个程序。

0 投票
2 回答
1691 浏览

node.js - Node.JS RC2-CBC Encryption and Decryption ciphers are not matching with C#

I have an existing encryption and decryption login inplemented in C# using RSC2-cbc algorithm using Key and IV. Now I am going to implement the same in node.js. So I have written following code to encryprt and decrypt. The problem I am facing is the node.js encrypted string (chiper) or decrypted string are not matching with C# encryptrd strings.

Existing C# code

Equivalent/ Translated node.js code

0 投票
1 回答
296 浏览

android - Android RC2 加密

我正在为一个相当古老的 web 服务制作一个 Android 客户端。Web 服务要求我以 RC2 样式对发送给它的一些数据进行加密。我无法获得任何东西(Cipher、KeyFactory、KeyGenerator 等),甚至无法获得 RC2 实现。

我无法更改 web 服务,所以我坚持使用 RC2 加密(我知道它较旧并且不是真正的首选)。

我可以在 java/android 库中使用任何实现吗?我更喜欢使用内置组件,但如果需要,我愿意使用第三方库。

0 投票
1 回答
1499 浏览

c# - RC2CryptoServiceProvider .NET 算法与 node js rc2 算法的区别

.NET 的 RC2CryptoServiceProvider 是否符合 OpenSSL。我将 RC2CryptoServiceProvider 与 CBC 一起使用,但相同文本的加密值(使用相同的密钥和初始化向量)与 nodejs 加密库的 rc2-cbc 产生的不同。Node js 加密库符合 OpenSSL。

有人已经问过这个差异,但还没有答案 - Node.JS RC2-CBC 加密和解密密码与 C# 不匹配

有人可以指点我完整的源代码 RC2CryptoServiceProvider 吗?加密/解密代码是 C# 中可用的完全托管代码,还是在下面使用 C++?

我有兴趣找到差异,因为我正在寻找一种方法来解密节点 js 中的 .NET 应用程序加密字符串。

下面是C#代码和对应的node js代码。对于相同的数据(HelloWorld),key和iv,产生的加密值是不同的。

下面是节点js代码。

0 投票
1 回答
222 浏览

encryption - 使用 Cryptography.RC2 的不良数据

有一个特殊的工作进展,我们加密和解密输入。突然,昨天,有一个我们无法解密的加密字符串。

看来我的密码学知识不足以解决这个问题。

代码:

这一工作进展持续了几个月。您可以使用输入对其进行测试

mIAU::__*?

你得到

砿첩뜞ꦽ嶾泛泛ɝࠪ埙偏ꍨ</p>

解密它,你又得到了

mIAU::__*?

但是加密后的字符串“钛ꧪ㧘联ꢮ玗硴廜᭮⸂濅�”会抛出错误:(当然我们用的是同一个key和iv)