Вы путаете две концепции (хеширование и шифрование).
Когда вам нужно проверить, что кто-то знает пароль, вы его хешируете (с солью) и сохраняете этот хеш. Затем, когда кто-то пытается аутентифицироваться как этот пользователь, вы запрашиваете у него пароль, хешируете его с той же солью и сравниваете с сохраненным значением. Это идеально, поскольку хеширование является односторонней / необратимой функцией. Поэтому, если кто-то получит доступ к вашему хранилищу учетных данных, он ничего не получит, поскольку ему потребуется взломать этот хэш (а современные алгоритмы, такие как crypt / bcrypt, специально разработаны для того, чтобы сделать взлом методом «грубой силы» очень трудным).
Однако, если вам необходимо восстановить пароль в виде открытого текста, вы будете шифровать его, а не хешировать. В отличие от криптографического хеширования, шифрование обратимо, если вы знаете ключ.
Брелок шифрует все, что вы храните в нем, исходя из предположения, что вам понадобится восстановить реальные данные в какой-то момент (например, если я введу свой пароль Facebook в брелок, он сможет расшифровать его и предоставить фактический пароль, когда мне нужно использовать его для доступа к Facebook). Цепочка для ключей разработана для того, чтобы хранить эти секретные значения в зашифрованном виде, так что когда вам действительно нужно восстановить исходное значение, вы можете.