前言
我們會使用 Key 來做 加密及解密,
那這個 Key 常常會被放在程式碼之中,
而在 Code Review 中,也常常被拿出來討論。
以下就整理放 Key 的一些選項,
Key存放選項
- 在 加密/解密 程式碼中,但如果程式碼被別人看到,加密就會被破解
- 透過 Windows 作業系統保護,.NET 可透過 ProtectedData.Protect / ProtectedData.Unprotect 來將 Key 再進行加密存到設定檔中,要使用時,再解密回來使用
- 放在地端的 Vault 之中,目前最常見的就是使用 HashiCorp Vault
- 放在雲端的 Vault 之中,例如 Azure Key Vault or HashiCorp Vault
參考資料
ProtectedData.Protect / ProtectedData.Unprotect
Azure Key Vault Sample