我正在尝试进行需要对特定字符串进行 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,但我也没有任何运气。任何帮助或指导表示赞赏!