What is the best way to do this ?
Come sempre, dipende. Il modo più sicuro per farlo consiste nell'utilizzare uno strumento specializzato che gestirà la crittografia della password, archiviandola in un vault della password e che consentirebbe anche a questa password di essere modificata automaticamente su una pianificazione dal vault della password indipendentemente dallo script . Se non si dispone di uno strumento di verifica password, allora potrebbe essere un progetto più grande di quello che è necessario in questo momento. Il meccanismo effettivo utilizzato da questi strumenti per eseguire la crittografia e gestire la chiave consiste nell'utilizzare una chiave casuale e incorporare alcune informazioni sull'hardware nella chiave, inoltre il classificatore consente anche un blocco tramite l'indirizzo IP, in modo che solo il server possa recuperare la password.
I mean, if I just hard code the password, anyone can simple look at the source code to obtain them.
Sì e ci sono altri problemi anche con questo approccio. Questo script sarà impegnato in un repository di codice sorgente? Se è così, allora c'è anche la password. Potrebbe anche diventare un problema aggiornare questo script ogni volta che è necessario modificare la password.
Should I store it in a database ?
Questo non è molto meglio che tenerlo nello script eccetto che ora almeno non andrà al repository del codice sorgente. Potresti fare affidamento sulla crittografia a livello di database per evitare di preoccuparti delle chiavi di crittografia, ma gli amministratori di database avrebbero comunque accesso.
Or should I encrypt it and then use a master password to unlock it (Not preferred) ?
Questo non è diverso dal semplice chiedere la password effettiva in fase di runtime eccetto che sarebbe molto meno lavoro.