3

私はplain.txtというファイルを持っています。私が持っているファイル内:

Hello Hello Hello Hello

このコマンドを使用して暗号化しています:

openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin

次に、暗号化された値を次のように出力します。

buff = open("encrypted.bin")
cipher = buff.read()
buff.close()
print b64encode(cipher)

しかし、それは常に異なる値です。暗号は常に同じであるべきではありませんか?同じファイルと同じパスワードを使用して暗号化しています。これらは私の端末出力です:

Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX1+AmoQiIkYAxIYanLr/kbjMfEJPPLfeE/wtyxScvAKzb7K38ZxoI097
Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX19vPD+OoiK7iSgYJiPMxuKGNWWrLlfBS0c3yCJkuv7QIBGEo2Q86UsV
Richard-Knops-MacBook-Pro:python_test richardknop$ openssl enc -aes-128-cbc -salt -k "Hello" -in plain.txt -out encrypted.bin
Richard-Knops-MacBook-Pro:python_test richardknop$ python test.py U2FsdGVkX1+3I8EC7u3lrcVPyD/JV12NAecWvTPXGga0Nh2cwqLAtGCDhLK6MI9g
Richard-Knops-MacBook-Pro:python_test richardknop$ 
4

4 に答える 4

9

毎回「塩」が違うから。これにより、たとえば、暗号化された値に対するレインボー テーブル タイプの攻撃が防止されます。http://en.wikipedia.org/wiki/Salt_(暗号化)を参照してください。

于 2012-08-05T17:52:34.157 に答える