所以我想用已经存在的公钥使用OpenSSL来加密字符串1200|2000.00。
因此,我的文本存储在一个名为'plaintext.txt‘的文件中,根据其他一些资源,我运行了以下命令。
openssl rsautl -encrypt -pubin -inkey public.key -in plaintext.txt -out encrypted.txt然而,由于某些原因,当在记事本中打开时,我的输出结果如下所示...
歆贎帡➃嗼Ἶ毒䅂橂〕䢣࡞㢧퍈벉ᢰB᳒噌⚝갗滔曍䫵牛鳝辽ᆗ綍E実悖䗹輴倰و抠峤�饭䀽嘕ﰜ㝤ズ똬烧嵇诙셎쵅ᕀဍ峇贆᱕땃빸覍턴这是我没有预料到的,我做错了什么吗?
有没有人可以帮我,因为我已经被指示使用encrypted using openssl_public_encrypt method对数据进行加密。
任何帮助都非常感谢,谢谢!
发布于 2021-05-27 06:58:31
您发布的openssl rsautl命令的输出是原始字节,而不是文本。这就是为什么当您在记事本中打开它时,输出看起来乱七八糟。
如果希望openssl rsautl的输出是可显示的文本,可以使用base64编码对输出进行编码,然后将base64编码的密文写入文件。这可以通过在命令行上将几个命令串在一起来完成,如下所示:
openssl rsautl -encrypt -pubin -inkey pub.key -in plaintext.txt | base64 > encrypted.txt您应该能够在记事本中打开encrypted.txt,或者在命令行中查看它,并看到base64编码的密文。
要解密base64编码的密文,您需要执行以下操作:
cat encrypted.txt | base64 -d | openssl rsautl -decrypt -inkey priv.keyhttps://stackoverflow.com/questions/67648523
复制相似问题