Je n'arrive pas à trouver un bel exemple d'utilisation du cryptage AES 128 bits.
Quelqu'un a-t-il un exemple de code?
c#
cryptography
aes
rijndaelmanaged
Dan Esparza
la source
la source
Réponses:
Si vous souhaitez simplement utiliser le fournisseur de chiffrement intégré RijndaelManaged, consultez l'article d'aide suivant (il contient également un exemple de code simple):
Et juste au cas où vous auriez besoin de l'échantillon à la hâte, le voici dans toute sa splendeur plagiée:
la source
using ()
bloc supprime automatiquement l'objet myRijndael (et tous les autres objets RijndaelManaged dans cet exemple). Peut-être que votre commentaire concernait une version antérieure de la réponse, ou le lien montrait de mauvais exemples, mais ce n'est pas le cas aujourd'hui.J'ai récemment dû me confronter à cela dans mon propre projet - et je voulais partager le code un peu plus simple que j'ai utilisé, car cette question et cette série de réponses revenaient sans cesse dans mes recherches.
Je ne vais pas entrer dans les préoccupations de sécurité concernant la fréquence de mise à jour de choses comme votre Salt et Initialization Vector - c'est un sujet pour un forum de sécurité, et il existe d'excellentes ressources à consulter. Il s'agit simplement d'un bloc de code à implémenter
AesManaged
en C #.Le code est très simple à utiliser. Cela nécessite littéralement ce qui suit:
Par défaut, l'implémentation utilise AesManaged - mais vous pouvez également en insérer un autre
SymmetricAlgorithm
. Une liste desSymmetricAlgorithm
héritiers disponibles pour .NET 4.5 est disponible sur:http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.aspx
Au moment de cet article, la liste actuelle comprend:
AesManaged
RijndaelManaged
DESCryptoServiceProvider
RC2CryptoServiceProvider
TripleDESCryptoServiceProvider
Pour utiliser
RijndaelManaged
avec le code ci-dessus, à titre d'exemple, vous utiliseriez:J'espère que cela est utile à quelqu'un là-bas.
la source
The name 'GetBytes' does not exist in the current context
. Puis-je vous demander quelle version du framework .Net vous utilisez?Regardez un échantillon ici.
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=VS.100).aspx#Y2262
L'exemple sur MSDN ne fonctionne pas normalement (une erreur se produit) parce qu'il n'y a pas de valeur initiale de Initial Vector (iv) et clé . J'ajoute 2 lignes de code et je travaille maintenant normalement.
Plus de détails voir ci-dessous:
la source
Vous utilisez AES ou implémentez AES? Pour utiliser AES, il existe la classe System.Security.Cryptography.RijndaelManaged.
la source
Pour un exemple plus complet qui effectue la dérivation de clé en plus du chiffrement AES, consultez la réponse et les liens publiés dans Faire fonctionner le chiffrement AES sur Javascript et C # .
EDIT
une note latérale: la cryptographie Javascript est considérée comme nuisible. Vaut la lecture.
la source
la source
http://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
la source
Essayez ce code, peut-être utile.
1.Créez un nouveau projet C # et ajoutez le code suivant à Form1:
2.Créez clsCrypto.cs et copier-coller suit le code de votre classe et exécutez votre code. J'ai utilisé MD5 pour générer le vecteur initial (IV) et la clé d'AES.
la source
Vous pouvez utiliser le mot de passe de la zone de texte comme clé ... Avec ce code, vous pouvez crypter / décrypter du texte, une image, un document Word, un pdf ....
Convertir le mot de passe de la zone de texte en tableau d'octets ...
la source
voici un code soigné et propre pour comprendre l'algorithme AES 256 implémenté dans la fonction C # call Encrypt comme
encryptedstring = cryptObj.Encrypt(username, "AGARAMUDHALA", "EZHUTHELLAM", "SHA1", 3, "@1B2c3D4e5F6g7H8", 256);
la source