我使用RSA加密方式使用openSSL加密数据,该工作正常。我对RSA的理解是,使用相同的公钥加密相同的数据总会给你相同的结果(as stated here或here)。为什么RSA加密文本为同一文本提供了不同的结果
但是,使用openssl我每次重复加密都会得到不同的结果。 例如:
➜ ~ echo '30' | openssl rsautl -encrypt -inkey pub.pem -pubin | shasum
11b6e058273df1ebe0be5e0596e07a6c51724ca0 -
➜ ~ echo '30' | openssl rsautl -encrypt -inkey pub.pem -pubin | shasum
05cb82595f7429ef196189f4e781088597d90eee -
那么为什么输出不是唯一的?是因为我得到了RSA加密错误还是openssl做了一些额外的魔法?
其实我试图设计一个只存储RSA加密数据的数据库。我想对加密信息的hashsum进行搜索,如果加密过程本身不是唯一的,这是不可能的。
FWIW,rsautil已被折价为[pkeyutil](http://www.openssl.org/docs/apps/pkeyutl.html) – 2013-05-01 20:50:41