检查无限制加密是否可用

2022-08-31 22:39:35

如何在Java代码中检查当前的JVM是否具有无限强度的加密技术?


答案 1

本着与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);
  }
}

答案 2

如果您使用的是 Linux 并且已经安装了 JDK(但 Beanshell 不可用),则可以使用 JDK 提供的命令进行检查。runscript

jrunscript -e 'exit (javax.crypto.Cipher.getMaxAllowedKeyLength("RC5") >= 256 ? 0 : 1);'; echo $?

如果无限制加密可用,或者如果不可用,这将返回状态代码。零是 shell 函数的正确“成功”返回值,非零表示失败。01


推荐