Создание ключа, и я попытался понять, как GenerateKey становится случайным в Linux. < /p>
Пример:
с использованием системы;
с использованием system.security.cryptography; < /p>
namespace AesEncryption
{
class Program
{
static void Main(string[] args)
{
using (Aes aesAlgorithm = Aes.Create());
aesAlgorithm.KeySize = 256;
aesAlgorithm.GenerateKey(); // Where does it get its entropy?
string keyBase64 = Convert.ToBase64String(aesAlgorithm.Key);
}
}
}
Описание метода можно найти здесь:
https://learn.microsoft.com/en-us/dotne ... emekemy-he /> Источник для aes.cs можно найти здесь:
https://github.com/dotnet/runtime/blob/ ... ographomis. /> Во -первых, как код решает, какое восхитительное создание (в Linux), так как есть несколько (Apple, Windows, OpenSSL и некоторые другие)? < /p>
[UnsupportedOSPlatform("browser")]
public static new Aes Create()
{
return new AesImplementation();
}
Предполагая, что это aesimplementation.cs:
https://github.com/dotnet/runtime/blob/ ... phy.public sealed override void GenerateKey()
{
Span key = stackalloc byte[KeySize / BitsPerByte];
RandomNumberGenerator.Fill(key);
SetKeyCore(key);
}
из которого, я думаю, приводит к:
https://github.com/dotnet/runtime/blob/ ... tor.cs#l98 0)
{
fixed (byte* ptr = data) GetBytes(ptr, data.Length);
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ev-urandom
Действительно использует ли C# .net aes generatekey (Randmerbergenerator) /dev /urandom на Linux ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение