由于某种原因,无论指定什么算法,我总是在调用SecretKeyFactory.getInstance()时在单元测试中获得异常.例如:
SecretKeyFactory.getInstance("PBEWITHMD5ANDDES") com.mhe.connect.util.EncryptionException: java.security.NoSuchAlgorithmException: PBEWITHMD5ANDDES SecretKeyFactory not available
同时,我看到Security.getProviders()返回我需要的算法:
SECRETKEYFACTORY.DESEDE SunJCE SECRETKEYFACTORY.PBEWITHMD5ANDDES SunJCE SECRETKEYFACTORY.DES SunJCE SECRETKEYFACTORY.PBEWITHMD5ANDTRIPLEDES SunJCE SECRETKEYFACTORY.PBKDF2WITHHMACSHA1 SunJCE SECRETKEYFACTORY.PBEWITHSHA1ANDDESEDE SunJCE SECRETKEYFACTORY.PBEWITHSHA1ANDRC2_40 SunJCE
这仅在单元测试(来自Maven或IDE)中发生,并且如果代码在Jetty下运行(从相同的Maven/JDK运行),则可以正常工作.
这种行为可能是什么原因?
今天遇到同样的问题.通过添加@PowerMockIgnore ("javax.crypto.*")
到课程解决它.
有谁知道我是否可以全局忽略这个包?我不想将它添加到从该包执行代码的每个类.