Un amigo me dijo antes que
Encriptar algo que necesita ser revertido es una mala idea ya que da la ilusión de seguridad
¿Es esto cierto? A mi modo de ver, no puede realmente dañar cifrar los datos.
Debería solo cifrar las cosas que deben revertirse. Si no es necesario revertirlos (como las contraseñas almacenadas), se deben eliminar con un algoritmo de hashing seguro.
Por definición, algo que está encriptado debe poder ser descifrado. Por lo tanto, la información cifrada es tan segura como la clave utilizada para cifrarla.
La seguridad de las claves es el aspecto más importante del cifrado. Un algoritmo fuerte con una clave comprometida no es más seguro que el texto simple.
Para cifrar la correspondencia de correo electrónico, alguna implementación de PGP (por ejemplo, OpenPGP) es el estándar de la industria: enlace
EDITAR: para cifrar archivos almacenados localmente (como un archivo de correo electrónico), recomiendo TrueCrypt: enlace
¡Importante! Tenga en cuenta que si olvida o pierde su clave de cifrado, por diseño, los datos cifrados no tienen ningún valor y no se pueden recuperar. No cifre copias de seguridad vitales a menos que esté absolutamente seguro de que la clave no se perderá.
Depende de cuál sea el objetivo. Mucha gente incrusta el cifrado para ofuscar datos. Otras herramientas como Armadillo incluso van mucho más lejos cuando se trata de ofuscación de código. Tenga en cuenta que su amigo tiene razón en que no le dará ninguna seguridad. Esto es cierto, pero puede ralentizar a las personas que intentan explotar o revertir su código.
No estoy seguro de lo que quieres decir con "algo que debe invertirse". Supongo que está hablando de alguien que realiza una evaluación de seguridad en su aplicación. Es cierto que esto lo hace más difícil en algunos casos. El consejo que les daría a los clientes que usan tal ofuscación es ... dame acceso al código fuente. Al final, está desacelerando a alguien que intenta evaluar la seguridad de su aplicación.
Ahora recuerde que esta persona estará allí mientras pague, si es difícil, es posible que no pueda cubrir su solicitud correctamente porque lo está haciendo más difícil (el atacante). Esto es bueno en una situación de la vida real, pero malo cuando se trata de descubrir problemas de seguridad.
Por lo tanto, mi consejo es que la ofuscación es buena, pero dale el código fuente a la persona que está tratando de evaluar tu solicitud. De lo contrario, pagará mucho dinero con una alta probabilidad de que el asesor no encuentre todos los problemas en su solicitud.
Lea otras preguntas en las etiquetas encryption