Console.WriteLine("Entering Diagnostic Mode...");
The cryptographic key is within a hard-coded string value that is
compared to the password. It is likely that an attacker will be able to
read the key and compromise the system.
Phase: Architecture and Design
Prevention schemes mirror that of hard-coded password storage.
The main difference between the use of hard-coded passwords and the use of
hard-coded cryptographic keys is the false sense of security that the former
conveys. Many people believe that simply hashing a hard-coded password
before storage will protect the information from malicious users. However,
many hashes are reversible (or at least vulnerable to brute force attacks)
-- and further, many authentication protocols simply request the hash
itself, making it no better than a password.