Merhaba arkadaşlar,
Uygulama içerisinde kullanmış olduğunuz şifrelerinizi gizlemek isterseniz bu durumda Microsoft tarafından çıkartılmış bir package var. Bu paketi kullanarak şifrelenmiş halini tutarak sonrasında bu şifre decrypte ederek istediğiniz yerde kullanabilirsiniz. Bu sürecin algoritması ise aşağıdaki gibidir.
1. Microsoft.AspNetCore.DataProtection paketini kur.
2. appsettings.json içerisine alttaki gibi bir tanımlama yap.
"Secrets": {
"EncryptedPassword": ""
}
3. 2 nolu basamaktaki EncryptedPassword yerine başka bir uygulamada mevcut şifrenin şifrelenmiş halini eklemen gerekiyor.
4. Startup.cs içerisinde alttaki kodu ekleyerek ilgili kütüphanenin middleware katmanında projeye tanıtılma işlemini yapıyor olmamız gerekecek.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDataProtection();
}
5. Şifreninin Şifresini Almak için alttaki kodlar kullanılıp 2nolu basamaktaki EncryptedPassword alanına eklememiz gerek.
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IDataProtector _protector;
private readonly IConfiguration _config;
public HomeController(ILogger<HomeController> logger, IDataProtectionProvider protector,IConfiguration configuration)
{
_logger = logger;
_protector = protector.CreateProtector("MySecretPurpose");
_config = configuration;
}
public IActionResult Index()
{
var encrypted = _protector.Protect("sifre123");
return View();
}
6. işlem sonucunda elde ettiğimiz şifrelenmiş şifre "CfDJ8BtApkD7hSdMtfe5D8CdXY1Re-hol1m-4Ay4AH0q76UQ_UrNsVwhnp8eAqOnH8MFeBFB9ZFPSrp-mmG4p8G3qRhu5b7LpPmipBaw1emW8FX1FmNAUtpiU4aC5ffdfLc3Bg" şeklindeydi. Bunu da alttaki şekilde appsettings.json içerisine ekledim.
"Secrets": {
"EncryptedPassword": "CfDJ8BtApkD7hSdMtfe5D8CdXY1Re-hol1m-4Ay4AH0q76UQ_UrNsVwhnp8eAqOnH8MFeBFB9ZFPSrp-mmG4p8G3qRhu5b7LpPmipBaw1emW8FX1FmNAUtpiU4aC5ffdfLc3Bg"
}
7. Şifrelenmiş şifreyi çözmek için ise alttaki gibi bir kod yazmak yeterli olacaktır.
var encrypted = _config["Secrets:EncryptedPassword"];
var decrypted = _protector.Unprotect(encrypted);
Artık şifrelenmiş verimizden orjinal şifreye ulaşmış olduk. Burada bir ara kod yazarak şifrelenme sürecini o kütüphane üzerinden anlık yapabiliriz.
Şifrelerinizi koruyun :)
Hiç yorum yok:
Yorum Gönder