我们正在尝试将Subtlecrypto集成到我们的blazor webassembly应用程序中。这似乎是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);