Мы пытаемся интегрировать Subtlecrypto в наше приложение для веб-сборки blazor. Кажется, это единственный криптографический пакет, который поддерживает blazor wasm.
Согласно официальному примеру, изменить/настроить секретный ключ невозможно. Если секрет назначается при запуске, ключ фиксируется и используется во всем приложении:
using Blazor.SubtleCrypto;
builder.Services.AddSubtleCrypto(opt =>
opt.Key = "ELE9xOyAyJHCsIPLMbbZHQ7pVy7WUlvZ60y5WkKDGMSw5xh5IM54kUPlycKmHF9VGtYUilglL8iePLwr"
);
Или можно использовать случайный ключ и iv, что приложение не имеет никакого контроля.
В нашем приложении мы надеемся попросить пользователя ввести ключ, который используется для шифрования некоторых данных. Фиксированный ключ может работать, но он кажется менее безопасным.
Есть ли способ получить собственный секретный ключ?
Ниже то, что я сделал:
var options = new CryptoOptions() { Key = "some_secret"};
var crypto = new CryptoService(jsRuntime, options);
string s = "abc";
CryptoResult encrypted = await crypto.EncryptAsync(s);
Console.WriteLine("Encrypted: " + encrypted.Value);
string d = await crypto.DecryptAsync(encrypted.Value);
Console.WriteLine("Decrypted: " + d);