首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用RC4解密HEX缓冲区?

如何用RC4解密HEX缓冲区?
EN

Stack Overflow用户
提问于 2020-04-08 00:49:20
回答 1查看 739关注 0票数 0

我似乎无法解密一个十六进制缓冲区,我很确定它是用RC4加密的,而且我很确定我知道密钥。作为密码学的初学者,我只想在开始认为我的假设是错误的之前,确定我做的每件事都是正确的。

代码语言:javascript
复制
const crypto = require('crypto');

const buffer = Buffer.from('471b...', 'hex');

const decipher = crypto.createDecipheriv('rc4', 'MyKey', '');
let decrypted = '';
decrypted += decipher.update(buffer, 'hex', 'utf8');
decrypted += decipher.final('utf8');

console.log(decrypted) // outputs stuff like "�Y6�k�"

我的十六进制缓冲区真的在RC4中加密了吗?或者我的密钥是对的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 10:58:44

我们看不出来。除非输入消息是二进制的,而不是文本,否则算法或键可能是不正确的,因为它看起来不像任何已知的字符编码。

密文和随机密码是无法区分的,这使得检测现代密码变得非常困难(因为你忽略了大部分密文)。然而,RC4是可以区分的,但是您需要复杂的攻击才能将它与随机噪声区分开来;这可能也会识别密码,即使不知道密钥。

此外,可以使用几乎任何类型的密钥大小初始化RC4。较小的键大小可能相对容易施暴

因此,简单地回答如下:

  • RC4 -dunno;
  • 键正确-可能不是。

顺便说一句:用十六进制打印明文,以防你想要检查它是否有意义。ASCII很容易以这种方式区分,但其他方案也可能以二进制形式显示模式,如果只看到其中有问号的菱形(或任何其他替换字符,尽管一些字体/终端实际上在字体中显示十六进制值,这是很好的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61091663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档