Unix Openssl RC4-密码为纯文本
我正在尝试使用RC4和openssl进行加密。我只能用十六进制而不是明文的密钥与在线密码工具匹配结果 将密码选项与明文一起使用-不匹配。 #echo-ne“stackoverflow”| openssl rc4-通行证:“rc4cipher”-nopad-nosalt | xxd-p 结果:8189898ec30bd96a81bca0e293 获取密码的对称密钥 #echo-ne“stackoverflow”| openssl rc4-通行证:“rc4cipher”-nopad-nosalt-p 键=1E8B649064CC6657312EE7346ED410A4 使用上述密码的六位键(-k选项)-匹配。 echo-ne“stackoverflow”| openssl rc4-K“1E8B649064CC6657312EE7346ED410A4”-nopad-nosalt | xxd-p 结果:8189898ec30bd96a81bca0e293 我可以将我的结果与在线工具进行匹配,方法是将键用作十六进制,而不是纯文本 有人能帮我选择使用openssl吗 谢谢Unix Openssl RC4-密码为纯文本,unix,encryption,openssl,passwords,rc4-cipher,Unix,Encryption,Openssl,Passwords,Rc4 Cipher,我正在尝试使用RC4和openssl进行加密。我只能用十六进制而不是明文的密钥与在线密码工具匹配结果 将密码选项与明文一起使用-不匹配。 #echo-ne“stackoverflow”| openssl rc4-通行证:“rc4cipher”-nopad-nosalt | xxd-p 结果:8189898ec30bd96a81bca0e293 获取密码的对称密钥 #echo-ne“stackoverflow”| openssl rc4-通行证:“rc4cipher”-nopad-nosalt-p
Ak键应该由随机二进制数据组成。它们不应该由文本组成。如果需要执行基于密码的加密,则需要使用密码哈希,或者更准确地说,使用基于密码的密钥派生函数将密码转换为密钥。常见的PBKDF是bcrypt、scrypt、PBKDF2和Argon2 这就是OpenSSL(命令行)在下面所做的:它使用了一种称为
EVP\u BytesToKey
的脆弱的OpenSSL专有算法。这基本上只与OpenSSL实现或兼容库兼容
大多数在线工具(您应该永远不要使用它来验证最终的任何实现)只是使用字符编码(如UTF-8、Windows-1252或任何其他通常未指定的编码)将文本转换为二进制。这是不安全的;这和大多数在线点击诱饵加密工具一样,都是死气沉沉的。谢谢Maarteen,要求我的结果与在线工具相匹配。正如您正确地提到的,当我使用十六进制代码作为密钥时,我可以完美地匹配,但我想要一个使用明文作为密钥的选项。function=arcfour&mode=stream&key=rc4cipher&key_type=plain&iv=&phone=b91fa0ab46abb20751c8c9b1d828e8fb8356adcb&do=表格提交这是一个愚蠢的要求。但是,您可以将文本编码为字节,然后编码为十六进制,然后重试。这些在线工具经常会出现编码错误,因此很难完全匹配所有可能的输入。有人知道openssl选项将密钥保留为纯文本吗?如何将密钥传递为纯文本而不是十六进制。