Dependiendo de su propósito, recomendaría 2 enfoques diferentes:
Enviando credenciales de inicio de sesión
Evita hacer esto si es posible. Si no tiene otra opción, al menos debe intentar proteger esta información en 2 frentes: 1. Protéjala de una parte maliciosa para que no la intercepte y lea la información y 2. Protéjala de una amenaza interna, por ejemplo. un empleado malintencionado que posiblemente conoce las credenciales antes de ser enviadas.
Para lograr el objetivo n. ° 1 sin molestar a los usuarios con una configuración de cifrado complicada, recomiendo usar 2 canales en paralelo para enviar las credenciales. Puede enviar el nombre de usuario y la primera mitad de la contraseña en un correo electrónico, y la otra mitad de la contraseña en un SMS (sí, Twillio es lo suficientemente barato). Esto reduciría significativamente el riesgo de que toda la información confidencial sea leída por el malo.
Hacia el objetivo n. ° 2, se me ocurren algunas de las mejores prácticas: generar la contraseña utilizando un generador de valores aleatorios sólidos, obligar al usuario a cambiar su contraseña justo después del primer inicio de sesión. Y no olvidemos que todas las contraseñas deben almacenarse como hashes de 1 vía, utilizando un algoritmo de hashing de contraseña fuerte.
Enviar otro tipo de información confidencial, como documentos
El siguiente es un enfoque simple: puede agregar el documento en un archivo zip (o 7zip, que es menos popular) y protegerlo con una contraseña (que en realidad lo encripta). A continuación, enviará este archivo como un archivo adjunto de correo electrónico al usuario. Para la contraseña, la envías por SMS. La contraseña es lo único que el usuario necesita para acceder al documento. Debería haber API que le permitan crear esos archivos comprimidos automáticamente (programáticamente). Al menos sé que 7zip tiene la API y también es compatible con el formato zip.
Si adopta este enfoque, recomendaría el formato zip, ya que es más popular y la mayoría de los sistemas operativos tienen soporte nativo para él. Solo asegúrate de elegir AES en lugar de Zip 2.0 como algoritmo de cifrado, porque AES es mucho más seguro.