Creo que estás mezclando varias cosas juntas aquí:
- OpenSSL es una biblioteca que tiene implementaciones para una variedad de algoritmos criptográficos, tanto para algoritmos fuertes como débiles. Por lo tanto, la seguridad primero depende del algoritmo que utilice.
- Está intentando usar un cifrado simétrico donde se necesita la misma clave para el cifrado y el descifrado. Por supuesto, esta llave debe estar protegida contra un adversario. Pero cómo esto se hace no es parte del algoritmo de cifrado y tampoco es parte de OpenSSL.
- Para el cifrado, necesita una clave, no una sal. En su lugar, la sal se utiliza en el contexto de hashing de contraseña. Además, el IV no es necesario para descifrar el texto cifrado, por lo que no es necesario almacenarlo explícitamente.
Por supuesto, almacenar la clave de descifrado junto con los datos cifrados no tiene sentido porque si un atacante tiene acceso a ambos, simplemente puede descifrar los datos.
Pero, la forma en que esta clave secreta debe protegerse completamente depende de su caso de uso desconocido, del valor de los datos y de las capacidades asumidas del adversario.