J'utilise les méthodes AES ici: http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspxCombien de caractères pour créer un tableau d'octets pour ma méthode AES?
Je veux avoir une valeur de chaîne que je convertir en tableau d'octets et de le transmettre à la méthode de chiffrement AES. Combien de caractères doit être la chaîne pour produire la taille de tableau d'octets correcte attendue par la méthode?
static byte[] encryptStringToBytes_AES(string plainText, byte[] Key, byte[] IV)
{
// Check arguments.
if (plainText == null || plainText.Length <= 0)
throw new ArgumentNullException("plainText");
if (Key == null || Key.Length <= 0)
throw new ArgumentNullException("Key");
if (IV == null || IV.Length <= 0)
throw new ArgumentNullException("Key");
// Declare the stream used to encrypt to an in memory
// array of bytes.
MemoryStream msEncrypt = null;
// Declare the RijndaelManaged object
// used to encrypt the data.
RijndaelManaged aesAlg = null;
try
{
// Create a RijndaelManaged object
// with the specified key and IV.
aesAlg = new RijndaelManaged();
aesAlg.Key = Key;
aesAlg.IV = IV;
// Create a decrytor to perform the stream transform.
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
// Create the streams used for encryption.
msEncrypt = new MemoryStream();
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(plainText);
}
}
}
finally
{
// Clear the RijndaelManaged object.
if (aesAlg != null)
aesAlg.Clear();
}
// Return the encrypted bytes from the memory stream.
return msEncrypt.ToArray();
}
Dans votre exemple, la chaîne est "ce que vous voulez chiffrer". Il n'est pas lié à "ce que la méthode AES attend". L'algorithme symétrique doit octet tableaux, une clé et une valeur initiale, pour pouvoir démarrer le chiffrement/déchiffrement. Vous prenez ces paramètres en tant que paramètres dans votre propre méthode et vous les transmettez directement au constructeur de l'algorithme.Ainsi, votre chaîne dans votre exemple peut être n'importe quelle longueur. Ce qui vous intéresse, c'est comment obtenir la clé de taille appropriée et les tableaux d'octets iv, et cela dépend de l'algorithme. Dans la réponse de SwDevMan81, vous pouvez voir qu'il a initialisé la touche + iv avant votre méthode. – maxwellb