Estou criando um sistema de anotações, onde o usuário pode salvar notas criptografadas.
Eu quero criar dois tipos de criptografia:
-
Primeira: Usuário cria uma nota, criptografa e para resgatá-la ele precisa apenas informar a senha do cadastro para descriptografá-la. Isso já está OK no sistema, fiz a criptografia com AES, a chave de criptografia fica em meu próprio sistema.
-
Segundo método: Usuário cria uma nota, digita uma senha específica para esta nota, criptografa e para resgatá-la ele precisa informar a senha específica para descriptografá-la. Esta senha não será armazenada no banco. A ideia é que nem eu mesmo, com acesso a base de dados possa ter acesso a ela.
Estou convertendo a senha gerada usando um HASH SHA 512. A nota é criptografada corretamente, porém ao descriptografar a nota tenho o seguinte erro:
java.lang.Exception: Error attempting to decrpt. Given final block not properly padded
Isso acontece porque o Hash gerado no momento da criptografia é diferente do hash gerado na descriptografia. Alguma dica de como solucionar isto, gerando o mesmo HASH sempre?
