检查无限制加密是否可用
如何在Java代码中检查当前的JVM是否具有无限强度的加密技术?
本着与Dan Cruz的答案相同的精神,但只有一行代码,并且没有低谷例外:
boolean limit = Cipher.getMaxAllowedKeyLength("RC5")<256;
因此,一个完整的程序可能是:
import javax.crypto.Cipher;
public class TestUCE {
public static void main(String args[]) throws Exception {
boolean unlimited =
Cipher.getMaxAllowedKeyLength("RC5") >= 256;
System.out.println("Unlimited cryptography enabled: " + unlimited);
}
}
如果您使用的是 Linux 并且已经安装了 JDK(但 Beanshell 不可用),则可以使用 JDK 提供的命令进行检查。runscript
jrunscript -e 'exit (javax.crypto.Cipher.getMaxAllowedKeyLength("RC5") >= 256 ? 0 : 1);'; echo $?
如果无限制加密可用,或者如果不可用,这将返回状态代码。零是 shell 函数的正确“成功”返回值,非零表示失败。0
1