 <p>This might be more of a process issue and less of a coding issue.</p> <p>You need to strictly separate the implementation process and the roll-out process during software development. The configuration files containing the passwords must be filled with the real passwords during roll-out, not before. The programmers can work with the password for the developing environment and the roll-out team changes those passwords once the application is complete. That way the real passwords are never disclosed to the people coding the application.</p> <p>If you cannot ensure that programmers do not get access to the live system, you need to encrypt the configuration files. The best way to do this depends on the programming language. I am currently working on a Java application that encrypts the .properties files with the appropriate functions from the <a href="http://www.owasp.org/index.php/Category%3aOWASP_Enterprise_Security_API" rel="nofollow">ESAPI project</a> and I can recommend that. If you are using other languages, you have to find equivalent mechanisms.</p> <p>Any time you want to change passwords, an administrator generates a new file and encrypts it, before copying the file to the server.</p> <p>In case you want maximum security and do not want to store the key to decrypt the configuration on your system, an administrator can supply it whenever the system reboots. But this might take things too far, depending on your needs.</p>