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
AesManageden 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 losSymmetricAlgorithmherederos 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:
AesManagedRijndaelManagedDESCryptoServiceProviderRC2CryptoServiceProviderTripleDESCryptoServiceProviderPara usar
RijndaelManagedcon 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