Armazenamento de senha SHA2 com Java
Estou tentando fazer uma chamada XML-RPC que requer o hash HmacSHA-256 de uma sequência específica. Atualmente, estou usando a biblioteca Jasypt com o seguinte código:
StandardPBEStringEncryptor sha256 = new StandardPBEStringEncryptor();
sha256.setPassword(key);
sha256.setAlgorithm("PBEWithHmacSHA2");
Ao tentar usar sha256.encrypt (string), recebo este erro:
Exception in thread "main" org.jasypt.exceptions.EncryptionInitializationException: java.security.NoSuchAlgorithmException: PBEWithHmacAndSHA256 SecretKeyFactory not available at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:597) at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:488) at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:541) at nysenateapi.XmlRpc.main(XmlRpc.java:52) Caused by: java.security.NoSuchAlgorithmException: PBEWithHmacAndSHA256 SecretKeyFactory not available at javax.crypto.SecretKeyFactory.(DashoA13*..) at javax.crypto.SecretKeyFactory.getInstance(DashoA13*..) at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:584) ... 3 more
Fiz o download da extensão JCE Cryptography e coloquei os frascos no meu caminho de construção, mas isso não parece ter feito nada. Eu tentei usar várias combinações no setAlgorithm acima, incluindo "PBE", "PBEWithSha" (1 | 2 | 128 | 256)? ", PBEWithHmacSha" etc.
Também tentei usar o BouncyCastle, mas também não tive sorte. Qualquer ajuda ou orientação apreciada!