Encryption OpenSSL交换加密是';I don’我没有表现得像预期的那样

Encryption OpenSSL交换加密是';I don’我没有表现得像预期的那样,encryption,cryptography,openssl,aes,Encryption,Cryptography,Openssl,Aes,我目前正在自学用于通信的交换加密(如果你不问我为什么不使用SSL,这会更容易)。我使用openssl作为加密的后端。为了处理这些数据,我使用aes-256-ctr进行交换加密(感谢Crypto.SE上的优秀人员教我这方面的知识。)以下是我的工作: echo -n lemons|openssl enc -aes-256-ctr -nosalt -pass pass:a |openssl enc -aes-256-ctr -nosalt -pass pass:b |openssl enc -d -a

我目前正在自学用于通信的交换加密(如果你不问我为什么不使用SSL,这会更容易)。我使用openssl作为加密的后端。为了处理这些数据,我使用
aes-256-ctr
进行交换加密(感谢Crypto.SE上的优秀人员教我这方面的知识。)以下是我的工作:

echo -n lemons|openssl enc -aes-256-ctr -nosalt -pass pass:a |openssl enc -aes-256-ctr -nosalt -pass pass:b |openssl enc -d -aes-256-ctr -nosalt -pass pass:a |openssl enc -d -aes-256-ctr -nosalt -pass pass:b
这很有效。但我需要这一行,base64编码。因此,我将
-a-a
添加到每个OpenSSL命令中,它不返回任何内容。奇怪的我肯定我看多了一些东西,或者在我认为它应该如何工作和它实际如何工作之间有一个很大的误解。我考虑回到Crypto.SE来问这个问题,但看到这与OpenSSL命令有更多的关系,而不是它背后的密码学


谢谢您的帮助。

不过,我不确定脚本编写是否是执行交换加密的正确方法。我愿意听取建议。php库对此有好处吗?这就是它将要实现的内容。我将反过来说,如果PHP是您的语言,那么mcrypt似乎内置了CTR功能。但是,通常使用脚本语言时,请确保加密/解密函数的输入符合预期,例如,以十六进制打印所有I/O值。Mcrypt for PHP也乐于接受不正确的密钥和IV大小。请注意,底层的mcrypt库已经有好几年没有维护了。