因为密码往往是人类可读的，因此可能不是特别强。为了改善这缺点，一个好的加密系统不会使用密码作为密钥来执行主加密任务本身，而是充当密钥派生函数（KDF）的输入。KDF使用密码作为起点，然后从中生成实际的安全加密密钥。在生成中可以使用各种方法，例如添加盐 (密码学)和密钥延伸。