Ho una funzione PHP che ho scritto che usa una stringa binaria a 64 bit e un vettore di inizializzazione casuale per codificare i dati usando il seguente principio di base:
$encrypted = openssl_encrypt($data_to_encrypt, AES_256_CTR, $64bit_binary_string, 0, $iv);
Quindi per decifrare il messaggio devo sapere che la IV lo lego al nuovo hash con un separatore di due punti:
$encrypted = $encrypted . ':' . $iv;
Infine, base64 codifica l'intera cosa per un altro scopo
Ho letto che l'IV non ha bisogno di essere segreto finché è casuale. Se questo è vero, allora ho ragione nel presumere che sia sicuro di essere incluso alla fine dell'hash come questo? Ovviamente, base64 è facile da invertire, quindi una volta fatto, suppongo che sarebbe facile per chiunque indovinare qual è la IV. Il problema sarebbe decodificare la stringa a 64 bit.