Как Microsoft добавляет вектор инициализации в безопасную строку в криптографии AES для метода ConvertTo-SecureString в C#

Место общения программистов C#
Ответить
Anonymous
 Как Microsoft добавляет вектор инициализации в безопасную строку в криптографии AES для метода ConvertTo-SecureString в

Сообщение Anonymous »

У меня есть несколько зашифрованных файлов, зашифрованных с помощью сценария Powershell с использованием ConvertTo-SecureString с использованием AES-256, например:

Код: Выделить всё

$secretKey = "thisIsAnExampleButNotTheRealKey2"
$cleBytes = [System.Text.Encoding]::UTF8.GetBytes($secretKey)
$aes = New-Object System.Security.Cryptography.AesCryptoServiceProvider
$aes.Key = $cleBytes
$aes.GenerateIV()
$texteBytes = [System.Text.Encoding]::UTF8.GetBytes($texteAChiffrer)
$chiffreBytes = $aes.CreateEncryptor().TransformFinalBlock($texteBytes, 0, $texteBytes.Length)
$cryptedText = [Convert]::ToBase64String($chiffreBytes)
Write-Output "encrypted Text: $cryptedText"
В моем приложении C# мне нужно расшифровать эти файлы.
Я использую этот метод:

Код: Выделить всё

public static string UncryptAES(string cryptedText, byte[] key, byte[] initVector)
{
using (Aes aesAlgo = Aes.Create())
{
aesAlgo.Key = key;
// how to compute the initVector instead of passing it as a parameter?
aesAlgo.IV = initVector;
ICryptoTransform decryptor = aesAlgo.CreateDecryptor(aesAlgo.Key, aesAlgo.IV);

using (var msDecrypt = new MemoryStream(Convert.FromBase64String(cryptedText)))
{
using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (var srDecrypt = new StreamReader(csDecrypt))
{
return srDecrypt.ReadToEnd();
}
}
}
}
}
Я читал, что вектор инициализации генерируется Powershell как случайное число после завершения шифрования и сохраняется вместе с зашифрованными данными.
Как вычислить вектор инициализации ?

Подробнее здесь: https://stackoverflow.com/questions/777 ... -aes-crypt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»