Openssl RC4 - 密码为纯文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Openssl RC4 - 密码为纯文本相关的知识,希望对你有一定的参考价值。
我正在尝试使用openssl使用RC4加密。我可以将结果与在线密码工具匹配,只能将密钥作为十六进制而不是明文。
使用明文密码选项 - 不匹配。
#echo -ne“stackoverflow”| openssl rc4 -pass传递:“rc4cipher”-nopad -nosalt | xxd -p
结果:8189898ec30bd96a81bca0e293
获取密码的对称密钥
#echo -ne“stackoverflow”| openssl rc4 -pass传递:“rc4cipher”-nopad -nosalt -p
关键= 1E8B649064CC6657312EE7346ED410A4
使用上述密码的六进制密钥(-k选项) - MATCHES。
echo -ne“stackoverflow”| openssl rc4 -K“1E8B649064CC6657312EE7346ED410A4”-nopad -nosalt | xxd -p
结果:8189898ec30bd96a81bca0e293
我可以使用密钥作为十六进制而不是纯文本将我的结果与在线工具相匹配。
有人可以选择与openssl一起使用吗?
谢谢,
当
密钥应包含随机二进制数据。它们不应该由文本组成。如果您需要执行基于密码的加密,则需要使用密码哈希,或者更确切地说,使用基于密码的密钥派生函数将密码转换为密钥。常见的PBKDF是bcrypt,scrypt,PBKDF2和Argon2。
这就是OpenSSL(命令行)所做的事情:它使用一种名为EVP_BytesToKey
的弱OpenSSL专有算法。这基本上只与OpenSSL实现或兼容性库兼容。
大多数在线工具(您不应该使用它们来验证最终的任何实现)只是使用字符编码将文本转换为二进制,例如UTF-8,Windows-1252或任何其他 - 通常是未指定的 - 编码。这不安全;它与大多数在线发现的点击诱饵加密工具一样具有脑力。
以上是关于Openssl RC4 - 密码为纯文本的主要内容,如果未能解决你的问题,请参考以下文章
防止 Facebook Android SDK 将密码显示为纯文本