Java无法找到任何支持Serpent/CTR/NoPadding的提供程序

nzrxty8p  于 2023-10-14  发布在  Java
关注(0)|答案(2)|浏览(124)

sshj日志

Cannot find any provider supporting CAST5/CTR/NoPadding
Cannot find any provider supporting IDEA/CTR/NoPadding
Cannot find any provider supporting Serpent/CBC/NoPadding
Cannot find any provider supporting Serpent/CTR/NoPadding
Cannot find any provider supporting Twofish/CBC/NoPadding
Cannot find any provider supporting Twofish/CTR/NoPadding
Disabling high-strength ciphers: cipher strengths apparently limited by JCE polic

我有最新的jdk1.8.0_371 -我假设这个版本默认情况下有无限的加密?

  • 在Java 8 u151及更高版本中,JCE框架默认使用无限制强度策略文件。*

它在一个虚拟机上工作,在另一个虚拟机上失败。
我试着在这两个上打印支持的算法。同样的产量

Set<String> algs = new TreeSet<>();
    for (Provider provider : Security.getProviders()) {
        provider.getServices().stream()
                .filter(s -> "Cipher".equals(s.getType()))
                .map(Provider.Service::getAlgorithm)
                .forEach(algs::add);
    }
    algs.forEach(System.out::println);

这里是输出。我错过了什么?我钥匙有问题吗?

AES
AESWrap
AESWrap_128
AESWrap_192
AESWrap_256
AES_128/CBC/NoPadding
AES_128/CFB/NoPadding
AES_128/ECB/NoPadding
AES_128/GCM/NoPadding
AES_128/OFB/NoPadding
AES_192/CBC/NoPadding
AES_192/CFB/NoPadding
AES_192/ECB/NoPadding
AES_192/GCM/NoPadding
AES_192/OFB/NoPadding
AES_256/CBC/NoPadding
AES_256/CFB/NoPadding
AES_256/ECB/NoPadding
AES_256/GCM/NoPadding
AES_256/OFB/NoPadding
ARCFOUR
Blowfish
DES
DESede
DESedeWrap
PBEWithHmacSHA1AndAES_128
PBEWithHmacSHA1AndAES_256
PBEWithHmacSHA224AndAES_128
PBEWithHmacSHA224AndAES_256
PBEWithHmacSHA256AndAES_128
PBEWithHmacSHA256AndAES_256
PBEWithHmacSHA384AndAES_128
PBEWithHmacSHA384AndAES_256
PBEWithHmacSHA512AndAES_128
PBEWithHmacSHA512AndAES_256
PBEWithMD5AndDES
PBEWithMD5AndTripleDES
PBEWithSHA1AndDESede
PBEWithSHA1AndRC2_128
PBEWithSHA1AndRC2_40
PBEWithSHA1AndRC4_128
PBEWithSHA1AndRC4_40
RC2
RSA
guicsvcw

guicsvcw1#

新的JDK 8(jdk1.8.0_371)。它有无限的政策,但他们没有启用。如果你不复制无限的政策,以jre遗产的位置,
jdk1.8.0_371/jre/lib/security
然后默认其限制。
因此必须添加Security.setProperty(“crypto.policy”,“unlimited”);
我认为较新的sshj版本默认具有此功能

hkmswyz6

hkmswyz62#

不,这与您的(身份验证)密钥无关。
这些密码从未包含在“标准”Sun/Oracle/OpenJDK Java提供程序中,但它们在BouncyCastle中,BouncyCastle被声明为sshj的依赖项。sshj中的这个警告设计得很糟糕:即使在过去,受限策略也不是不能使用密码的唯一原因,你是对的,因为8 u151(或者最坏的8 u161)受限策略 * 从来不是问题--注意sshj没有抱怨aes 192和aes 256,它们是受受限策略影响的主要原因。
你几乎肯定不需要,甚至不能使用这些密码,这取决于你连接到什么-现在也可能不是arcfour/RC 4和blowfish,SunJCE * 确实 * 提供。你可以忽略(或不记录)警告,或使用指定的Bouncy,或使用显式配置来限制密码(可能还有其他功能),但这将是更多的工作。

相关问题