O erro que você tem depois de esperar algum tempo para descriptografar a senha, e você mencionou que o método "tem um tempo de expiração" é porque o salt
gerado aleatoriamente varia com o tempo. (por exemplo, será diferente todos os dias)
Ao criptografar, o primeiro caractere da senha criptografada é o sal usado ao criptografar com um sal; você deve usar o mesmo sal para descriptografar.
Esteja ciente de que, ao tentar criptografar sem sal, no MacOS / mais antigo? versões openssl você tem que usar a palavra-chave -nosalt
; openssl
gera e usa um sal por padrão.
Então, para criptografar sem sal, você precisa fazer:
echo P@$$word| openssl enc -aes-128-cbc -a -nosalt -pass pass:pass_key
No entanto, ao armazenar senhas, é uma prática ruim descriptografá-las para compará-las com senhas candidatas; mais tarde, para comparar os scripts , você não os descriptografa :
o que você faz para comparar senhas é criptografar uma senha para verificar com o mesmo salt (se estiver usando salt) e comparar as strings criptografadas para ver se elas correspondem.
Se for para encaminhar senhas entre sistemas e não armazená-las, usar salt
não é tão essencial, mas tenha em mente que isso ajuda a mantê-lo mais seguro.
No entanto, caso você tenha strongs necessidades de segurança sobre a força de criptografia, o OpenSSL é conhecido por ter uma força de criptografia fraca e o GnuPG é mais strong do que o openSSL para criptografar.