SecureRandom на C#. NET - PullRequest
       7

SecureRandom на C#. NET

0 голосов
/ 29 апреля 2020

У меня C#. NET кодировка шифрования, подобная этой:

public static string Encrypt(string plainText, string KEY, string SALT)
{
    byte[] secretKey = null;
    using (Rfc2898DeriveBytes rfc2898 = new Rfc2898DeriveBytes(KEY, Encoding.UTF8.GetBytes(SALT), 65536, HashAlgorithmName.SHA256))
    {
        secretKey = rfc2898.GetBytes(32);
    }

    using (RijndaelManaged AES = new RijndaelManaged())
    {
        AES.Key = secretKey;
        AES.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
        AES.Mode = CipherMode.CBC;
        AES.Padding = PaddingMode.PKCS7;

        byte[] encryptedData;
        using (ICryptoTransform encryptor = AES.CreateEncryptor())
        {
            using (System.IO.MemoryStream memoryStream = new MemoryStream())
            {
                using (CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
                {
                    using (StreamWriter streamWriter = new StreamWriter(cryptoStream))
                    {
                        streamWriter.Write(plainText);
                    }
                    encryptedData = memoryStream.ToArray();
                }
            }
        }

        return Convert.ToBase64String(encryptedData);
    }
}

Q C хочет изменить мой код из этого:

byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

На это:

byte[] iv = new byte[16];
SecureRandom secRandom = new SecureRandom();
secRandom.nextBytes(iv);

Проблема в том, что предлагаемый код написан в Java, есть идеи переписать его в C#. NET, пожалуйста?

Для справки я видел тот же вопрос: SecureRandom в C#

Но я все еще не понимаю.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...