Хранение пароля SHA2 с Java
Я пытаюсь сделать вызов XML-RPC, который требует хеширования HmacSHA-256 конкретной строки. В настоящее время я использую библиотеку Jasypt со следующим кодом:
StandardPBEStringEncryptor sha256 = new StandardPBEStringEncryptor();
sha256.setPassword(key);
sha256.setAlgorithm("PBEWithHmacSHA2");
При попытке использовать sha256.encrypt (string) я получаю эту ошибку:
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
Я скачал расширение JCE Cryptography и поместил баночки в мой путь сборки, но это, похоже, ничего не сделало. Я попытался использовать несколько комбинаций в setAlgorithm выше, в том числе «PBE», «PBEWithSha» (1 | 2 | 128 | 256) ?, «PBEWithHmacSha» и т. Д.
Я также пытался использовать BouncyCastle, но мне тоже не повезло. Любая помощь или руководство приветствуется!