Penso che stai mescolando più cose insieme qui:
- OpenSSL è una libreria che ha implementazioni per una varietà di algoritmi crittografici, sia per algoritmi forti che per algoritmi deboli. Pertanto, la sicurezza dipende prima da quale algoritmo si utilizza.
- Stai tentando di utilizzare la crittografia simmetrica in cui è necessaria la stessa chiave per la crittografia e la decrittografia. Certo, questa chiave deve essere protetta contro un avversario. Ma come viene fatto questo non fa parte dell'algoritmo di crittografia e neanche parte di OpenSSL.
- Per la crittografia hai bisogno di una chiave, non di un sale. Salt invece viene utilizzato nel contesto dell'hash delle password. Inoltre, l'IV non è necessario per decodificare il testo crittografato, quindi non è necessario memorizzarlo esplicitamente.
Ovviamente l'archiviazione della chiave di decrittografia insieme ai dati crittografati non ha senso perché se un utente malintenzionato ottiene l'accesso ad entrambi può semplicemente decodificare i dati.
Tuttavia, il modo in cui questa chiave segreta deve essere protetta completamente dipende dal caso d'uso sconosciuto, dal valore dei dati e dalle capacità ipotizzate dell'avversario.