到他们日常使用的软件的安全组件里面含有密钥。如果密码被用作加密密钥，那么在精心设计的密码系统里就不会是这样使用的。这是因为密码往往是人类可读的，因此可能不是特别强。为了改善这缺点，一个好的加密系统不会使用密码作为密钥来执行主加密任务本身，而是充当密钥派生函数（KDF）的输入。KDF使用密码作为起点，然后从中生成实际的安全加密密钥。在生成中可以使用各种方法，例如添加盐 (密码学)和密钥延伸。