我使用nodejs開發web應用程式,並用一個json檔來存放資料庫連線的資訊讓程式使用,如下:
mysql: {
host: 'localhost',
user: 'mary',
password: 'xxxxxxxxxx',
database: 'mydb',
port: '3306'
}
請問password的部份建議用何種方式處理比較好? 以及建議使用哪一種加密演算法? 謝謝
密鑰不可寫在靜態檔案中, 必須存放到 Vault (保管箱) 內, 需要使用的時候, 由程式透過 API 呼叫 Vault, 把密鑰讀回來使用 (使用期間不可儲存到本機內)
常見的 Vault 保管箱工具有:
https://ithelp.ithome.com.tw/articles/10242542
Vault 本身就有加密功能, 你可以信任他的加密, 或者自己再加一道.
而且 Vault 最好放在私有網路內, 或用防火牆限制來源, 避免 API 被外界隨意讀取.
可以將密碼存儲在操作系統的環境變數中,然後在應用程式中從環境變數讀取。首先在專案根目錄下創建.env檔,裡面放環境變數,然後在程式中使用process.env來存取這些值。
這樣可以將密碼與程式碼分離,避免在版本控制或共享程式碼時洩漏密碼。
另外加密演算法的話,就取決於你的需求和安全標準,可以使用SHA-256或bcrypt。這些演算法都是單向加密的,無法解密原始密碼只能進行比對。