Apa fungsi hash yang digunakan OpenSSL untuk menghasilkan kunci untuk AES-256? Saya tidak dapat menemukannya di mana pun di dokumentasi mereka.
$ touch file
$ openssl aes-256-cbc -nosalt -P -in file
enter aes-256-cbc encryption password: (I type "a" and hit enter)
Verifying - enter aes-256-cbc encryption password: (I type "a" and hit enter)
key=0CC175B9C0F1B6A831C399E269772661CEC520EA51EA0A47E87295FA3245A605
iv =4FA92C5873672E20FB163A0BCB2BB4A4
Algoritma hash mana yang menghasilkan hash yang tidak diasah setelah key=
pada baris terakhir kedua, untuk input "a"?
encryption
openssl
hashing
aes
mk12
sumber
sumber
md5
alih - alihsha1
, saya mendapatkan hasil yang sama dengan yang saya posting sebelumnya. Pertanyaannya adalah, bagaimana cara mendapatkan 256 bit dari MD5 (algoritma hashing 128-bit)?Ini adalah gabungan dari dua hash MD5.
Itu diturunkan seperti ini:
Anda dapat memeriksanya dengan melakukan:
Perhatikan bagaimana MD5 untuk 'key.128.tmp' dan 'key.256.tmp' digabungkan bersama-sama membentuk kunci yang sama dengan output pada perintah awal.
sumber
OpenSSL menggunakan AES dengan SHA1.
Jika Anda ingin memeriksa sumber yang ditulis lebih baik daripada OpenSSL, lihat artikel
C ++ kelas yang berinteraksi dengan cipher OpenSSL .
Artikel ini mencakup kode sumber yang sangat sederhana yang:
sumber
Saya tidak tahu jawabannya, tetapi Anda mungkin dapat menemukannya dengan cukup mudah dalam kode sumber OpenSSL .
sumber
main
(di mana fungsi bertanya kata sandi tinggal) ~ 500 baris panjang dan penuh dengangoto
s.