Parece que no puedo encontrar un buen ejemplo limpio del uso de cifrado AES de 128 bits.
¿Alguien tiene algún código de muestra?
c#
cryptography
aes
rijndaelmanaged
Dan Esparza
fuente
fuente
Respuestas:
Si solo desea utilizar el proveedor de cifrado integrado RijndaelManaged, consulte el siguiente artículo de ayuda (también tiene una muestra de código simple):
Y en caso de que necesite la muestra con prisa, aquí está en todo su esplendor plagiado:
fuente
using ()
bloque elimina automáticamente el objeto myRijndael (y todos los demás objetos RijndaelManaged en este ejemplo). Quizás su comentario fue para una versión anterior de la respuesta, o el enlace mostraba malos ejemplos, pero ese no es el caso hoy.Recientemente tuve que enfrentarme a esto nuevamente en mi propio proyecto, y quería compartir el código algo más simple que he estado usando, ya que esta pregunta y una serie de respuestas seguían apareciendo en mis búsquedas.
No voy a entrar en las preocupaciones de seguridad sobre la frecuencia con la que se actualizan cosas como su Salt y el vector de inicialización ; ese es un tema para un foro de seguridad y hay algunos recursos excelentes para analizar. Este es simplemente un bloque de código para implementar
AesManaged
en C #.El código es muy sencillo de usar. Literalmente solo requiere lo siguiente:
De forma predeterminada, la implementación usa AesManaged, pero en realidad también podría insertar cualquier otro
SymmetricAlgorithm
. Puede encontrar una lista de losSymmetricAlgorithm
herederos disponibles para .NET 4.5 en:http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.aspx
Al momento de esta publicación, la lista actual incluye:
AesManaged
RijndaelManaged
DESCryptoServiceProvider
RC2CryptoServiceProvider
TripleDESCryptoServiceProvider
Para usar
RijndaelManaged
con el código anterior, como ejemplo, usaría:Espero que esto sea útil para alguien.
fuente
The name 'GetBytes' does not exist in the current context
. ¿Puedo preguntarle qué versión de .Net framework usa?Mira la muestra aquí ...
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=VS.100).aspx#Y2262
El ejemplo de MSDN no se ejecuta normalmente (se produce un error) porque no hay ningún valor inicial de inicial vectorial (iv) y Key . Agrego código de 2 líneas y ahora trabajo normalmente.
Más detalles ver a continuación:
fuente
¿Utiliza AES o implementa AES? Para usar AES, existe la clase System.Security.Cryptography.RijndaelManaged.
fuente
Para obtener un ejemplo más completo que realiza la derivación de claves además del cifrado AES, consulte la respuesta y los enlaces publicados en Cómo lograr que el cifrado AES funcione en Javascript y C # .
EDITAR
una nota al margen: la criptografía de JavaScript se considera dañina. Vale la pena leerlo.
fuente
fuente
http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
fuente
Prueba este código, quizás te resulte útil.
1.Cree un nuevo proyecto de C # y agregue el siguiente código a Form1:
2. Cree clsCrypto.cs y copie y pegue el código siguiente en su clase y ejecute su código. Usé MD5 para generar Vector Inicial (IV) y CLAVE de AES.
fuente
Puede usar la contraseña del cuadro de texto como clave ... Con este código puede cifrar / descifrar texto, imagen, documento de Word, pdf ...
Convertir contraseña de cuadro de texto a matriz de bytes ...
fuente
aquí hay un código limpio y ordenado para comprender el algoritmo AES 256 implementado en la función C # llamada Cifrar como
encryptedstring = cryptObj.Encrypt(username, "AGARAMUDHALA", "EZHUTHELLAM", "SHA1", 3, "@1B2c3D4e5F6g7H8", 256);
fuente