我正在尝试进行需要对特定字符串进行 HmacSHA-256 散列的 XML-RPC 调用。我目前正在使用带有以下代码的 Jasypt 库:
StandardPBEStringEncryptor sha256 = new StandardPBEStringEncryptor();
sha256.setPassword(key);
sha256.setAlgorithm("PBEWithHmacSHA2");
在尝试使用 sha256.encrypt(string) 我得到这个错误:
线程“主”org.jasypt.exceptions.EncryptionInitializationException 中的异常:java.security.NoSuchAlgorithmException:PBEWithHmacAndSHA256 SecretKeyFactory 不可用
在 org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:597)
在 org.jasypt.encryption.pbe.StandardPBEStringEncryptor.initialize(StandardPBEStringEncryptor.java:488)
在 org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:541)
在 nysenateapi.XmlRpc.main(XmlRpc.java:52)
引起:java.security.NoSuchAlgorithmException:PBEWithHmacAndSHA256 SecretKeyFactory 不可用
在 javax.crypto.SecretKeyFactory.(DashoA13*..)
在 javax.crypto.SecretKeyFactory.getInstance(DashoA13*..)
在 org.jasypt.encryption.pbe.StandardPBEByteEncryptor.initialize(StandardPBEByteEncryptor.java:584)
... 3 更多
我下载了 JCE Cryptography 扩展并将罐子放在我的构建路径中,但这似乎没有做任何事情。我尝试在上面的 setAlgorithm 中使用多种组合,包括“PBE”、“PBEWithSha”(1|2|128|256)?、“PBEWithHmacSha”等。
我也尝试过使用 BouncyCastle,但我也没有任何运气。任何帮助或指导表示赞赏!