2012-02-17 5 views
5

Para mayor seguridad para mantener las direcciones de correo electrónico privadas en un proyecto en el que estoy trabajando, me gustaría tener todos los correos electrónicos almacenados en nuestra base de datos encriptados. Sin embargo, estamos usando el proveedor de Membresía Asp.Net, y los correos electrónicos aparecen en texto claro en la columna Correo electrónico de la tabla aspnet_Membership. ¿Es su manera de lograr esto? Idealmente, de una manera simple.¿Es posible tener direcciones de correo electrónico cifradas en ApplicationServices DB?

+1

No hay nada simple acerca de la encriptación. No debido a la encriptación en sí ... si cifras los correos electrónicos tendrás que proteger tu secreto o administrar tus llaves. ¿Has pensado en cómo harás cualquiera de esos? –

+0

@EstebanAraya: Bueno, sé que no hay una solución perfecta, pero simplemente estaba planeando poner las llaves en el código. Una vez compilado, no es tan obvio encontrarlos. Además, no es porque alguien tenga acceso a la base de datos que esa persona tenga acceso a los archivos DLL. –

Respuesta

2

me gustaría crear un proveedor personalizado y sólo tiene que añadir una pequeña cantidad de código para cifrar la dirección de correo electrónico.

lanzaron fuente para el proveedor de ASP.net

http://weblogs.asp.net/scottgu/archive/2006/04/13/442772.aspx

si descarga el ProviderToolkitSamples.msi

Utilice los SQLMembershipProvider.cs para el proveedor de pertenencia en la línea 366 se almacena el correo electrónico dirección puede encriptarlo antes de llamar al procedimiento insert insertado.

también necesitará para descifrarlo cuando se recuperan desde la base de datos también.

Aquí es un buen artículo sobre cifrado me aseguraría que incluyen una sal con la dirección de correo electrónico para que sea más seguro.

http://hectorcorrea.com/blog/Encrypt-and-Decrypt-a-string-in-C-Sharp

Espero que ayude!

+0

¡Gracias por los enlaces! ¡Muy útil! –

Cuestiones relacionadas