Я собираюсь использовать IDataProtectionProvider в приложении asp .netcore. Я выполнил всю соответствующую настройку в Startup.cs, как показано ниже:
services.AddDataProtection()
.SetApplicationName("my-app")
.PersistKeysToFileSystem(new DirectoryInfo(@"\keys"))
.UseCryptographicAlgorithms(
new AuthenticatedEncryptorConfiguration()
{
EncryptionAlgorithm = EncryptionAlgorithm.AES_256_CBC,
ValidationAlgorithm = ValidationAlgorithm.HMACSHA256
});
, и я использую это так:
public WeatherForecastController(IDataProtectionProvider dataProtectionProvider)
{
this.dataProtectionProvider = dataProtectionProvider;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var protector = dataProtectionProvider.CreateProtector("weather");
var firstEncrypted = protector.Protect("hello");
var secondEncrypted = protector.Protect("hello");
...
}
, но firstEncrypted и secondEncrypted не равны. Я буду искать зашифрованные значения, и мне нужно получить тот же результат для фиксированного ввода.
Я не знаю, что мне делать, заранее спасибо.