![]() |
1
177
打个电话就行了
这个
这段代码适用于oraclejava7和8,并自动跳过java9和OpenJDK上不需要它的过程。毕竟是一个丑陋的黑客,它可能不适用于其他供应商的虚拟机。 它在oraclejava6上也不起作用,因为私有JCE类在那里是模糊的。不过,混淆并不会随着版本的不同而改变,因此从技术上讲,仍然可以支持Java6。 |
![]() |
2
90
现在已经不需要这样了 JIRA发行的具体版本:
请注意,如果出于某种奇怪的原因Java 9中需要旧的行为,可以使用以下方法设置:
|
![]() |
3
22
以下是解决方案: http://middlesphere-1.blogspot.ru/2014/06/this-code-allows-to-break-limit-if.html
|
|
4
14
看起来它回到了(a)使用Bouncy Castle,或者(b)安装JCE策略文件。 |
![]() |
5
13
|
![]() |
6
10
对于另一个加密库,请看 Bouncy Castle |
|
7
5
你可以用这个方法
要测试可用的密钥长度,请使用它并告知用户正在发生什么。例如,由于没有安装策略文件,说明应用程序正在退回到128位密钥。有安全意识的用户将安装策略文件,其他用户将继续使用较弱的密钥。 |
![]() |
8
3
对于我们的应用程序,我们有一个客户机-服务器体系结构,只允许在服务器级别对数据进行解密/加密。因此,JCE文件只在那里需要。
我们遇到了另一个问题,我们需要在客户机上更新一个安全jar,通过JNLP,它会覆盖
这就成功了。 |
![]() |
9
2
以下是的更新版本 ntoskrnl 回答。 它还包含一个函数来删除最后的修饰符,如 Arjan 在评论中提到。 此版本适用于JRE 8u111或更新版本。
|
![]() |
10
2
以下是@ntoskrnl代码的修改版本
正如@cranphin的答案所预测的那样,当java8u162中的无限制策略默认可用时,这段代码将正确地停止与反射的冲突。
|
![]() |
11
-1
在安装程序的过程中,只需提示用户并下载DOS批处理脚本或bashshell脚本,然后将JCE复制到适当的系统位置。 我以前必须为服务器Web服务执行此操作,而不是正式的安装程序,我只是提供脚本来安装应用程序,然后用户才能运行它。在应用程序运行安装脚本之前,您可以使其无法运行。你也可以让应用程序抱怨JCE丢失,然后要求下载并重新启动应用程序? |
![]() |
MarcForn · 加密/解密字符串Kotlin 7 年前 |
![]() |
Neeraj Athalye · 加密期间发生Java内存不足错误 7 年前 |
![]() |
Kuno Heltborg · 尝试用其他语言解密时AES解密错误 7 年前 |
![]() |
Tim Tuckle · 用Java加密字符串 7 年前 |