2010-10-04 5 views
0

Je reçois une exception FormatException pour cette méthode Convert.FromBase64String. Cela ne me dérange pas de coder en dur la valeur. Tout le monde peut expliquer pourquoi je reçois cette exception.Convert.FromBase64String FormatException

 // Instantiate a new RijndaelManaged object to perform string symmetric encryption 
     RijndaelManaged rijndaelCipher = new RijndaelManaged(); 

     // Set key and IV 
     rijndaelCipher.Key = Convert.FromBase64String("TASK"); 
     rijndaelCipher.IV = Convert.FromBase64String("0123"); 

Merci.

+2

Savez-vous ce base64 est, et quelles touches Rijndael et IVs sont? – SLaks

+0

Non Je n'ai pas besoin d'un travail rapide :) –

+1

_Ne pas utiliser la cryptographie si vous ne la comprenez pas_. Sinon, vous ** créerez ** des failles de sécurité. – SLaks

Répondre

3

Vos chaînes ne sont pas valides Base64.

Vous devez générer deux nombres aléatoires de 256 bits cryptographiquement sécurisés, les convertir en Base64 et les intégrer dans votre source.

Par exemple:

var alg = new RijndaelManaged(); 
alg.BlockSize = alg.KeySize = 256; 
Console.WriteLine("Key: " + Convert.ToBase64String(alg.Key)); 
Console.WriteLine("IV: " + Convert.ToBase64String(alg.IV)); 
+0

Pouvez-vous donner un exemple? –

+0

Mais n'est-ce pas aléatoire, j'aurais besoin de la clé cryptographique pour le décrypter plus tard? Vous ne définissez pas la clé un IV quelque part! –

+0

Vous pouvez exécuter ce code pour générer une clé aléatoire et IV, puis intégrer les résultats dans votre source. – SLaks

Questions connexes