Chr*_*her 17 java encryption aes
我想加密/解密许多小的(2-10kB)数据.现在性能还可以:在Core2Duo上,我得到大约90 MBytes/s的AES256(当使用2个线程时).但是我可能需要在将来改进它 - 或者至少减少对CPU的影响.
Tho*_*nin 14
在执行恰好是AES加密的代码时,JVM本身不会利用特殊的CPU功能:将某些代码识别为AES的实现超出了JIT编译器的能力.要使用特殊硬件(例如VIA处理器上的"挂锁"或新英特尔处理器上的AES-NI指令),您必须在某个时候通过"本机代码".
可能,JCE提供商可以为您做到这一点.我不知道任何现成的JCE提供程序,其中包括针对AES的优化本机代码(有一个名为Apache JuiCE的项目,但它似乎停滞不前,我不知道它的状态).但是可以想象,SunJCE将在未来的版本中实现这一点(但是由于Oracle购买Sun和OpenJDK 7的过度使用,目前还不清楚下一个Java版本何时发布).或者,咬紧牙关并自己使用本机代码.本机代码通过JNI调用,对于本机AES代码,一种流行的实现是Brian Gladman的实现.当您使用AES-NI指令获得更大更新的处理器时,请使用一些知道这些指令的代码替换该本机代码,如英特尔所述.
通过使用AES-128而不是AES-256,您可以获得+ 40%的速度提升.打破AES-128目前超出了人类的技术范围,并且应该在未来几十年保持这种状态.您真的需要一个256位的AES密钥吗?
通过将SunPKCS11安全提供程序与mozilla-nss库一起使用,您可以从提高的AES速度中受益.
安装程序描述于
归档时间: |
|
查看次数: |
11512 次 |
最近记录: |