我正在尝试使用GNU-CRYPTO的加密算法。 但每当我尝试时我得到一个:java.lang.SecurityException:JCE无法验证提供者GNU-CRYPTO'
奇怪的是,我可以正常使用此软件包中的所有哈希函数,但是当我尝试使用密码时,我得到了这些函数,用于AES,DES,DESede ......
基于此,我认为安装顺利。此外,当我将代码与其他提供程序(BC,SUN)一起使用时,它可以正常工作。
任何人都可以帮助我。
algorithm="DES";
provider="GNU-CRYPTO";
generator = KeyGenerator.getInstance(algorithm); <-works
generator.init(randGenerator);
SecretKey key = generator.generateKey();
cipherEncryption = Cipher.getInstance(algorithm, provider); <- stops here
答案 0 :(得分:2)
这可能是因为该项目已集成到GNU类路径中。这意味着最后签名的提供商是1.4。最多1.5个必须为每个Java版本创建库的签名版本,因此1.4版本可能与1.5及更高版本不兼容(例如检查弹性类库,每个版本的Java具有单独的下载,最高为1.5 )。此外,证书可能已过期。
请使用实际维护的加密库。首先应该不需要GNU加密。