如何用Java代码检查当前的JVM是否有无限强度的加密可用?
我认为您可能可以使用Cipher.getMaxAllowedKeyLength(),同时还将您使用的密码与已知的“良好”安全密码(例如AES)列表进行比较。
这是一篇参考文章,列出了自Java 1.4起当前最大的密钥大小管辖权限制(除非法律也有所改变,否则这些可能没有改变-参见下文)。
如果您在有密码进出口限制的国家/地区进行操作,则必须参考所在国家/地区的法律,但是可以安全地假定在这种情况下您 没有 无限强度的密码可用(默认情况下)在您的JVM中。换句话说,假设您使用的是来自Oracle的官方JVM,并且您恰好生活在一个美国对密码出口限制进行了限制的国家(并且由于Oracle是美国公司,因此必须遵守这些限制)限制),那么在这种情况下,您还可以假设自己没有无限的力量。
当然,这并不能阻止您建立自己的公司,从而赋予自己无限的实力,但是根据您当地的法律,这可能是非法的。
本文概述了美国对其他国家出口的限制。