相关疑难解决方法(0)

AES-NI内在函数默认启用?

关于AES-NI,Oracle有关Java 8的说法:

添加了硬件内在函数以使用高级加密标准(AES).UseAES和UseAESIntrinsics标志可用于为Intel硬件启用基于硬件的AES内在函数.硬件必须是2010或更新的Westmere硬件.例如,要启用硬件AES,请使用以下标志:

-XX:+UseAES -XX:+UseAESIntrinsics
Run Code Online (Sandbox Code Playgroud)

要禁用硬件AES,请使用以下标志:

-XX:-UseAES -XX:-UseAESIntrinsics
Run Code Online (Sandbox Code Playgroud)

但它并不表示默认情况下是否启用AES内在函数(对于支持它的处理器).所以问题很简单:如果处理器支持AES-NI,是否使用了AES内在函数?

奖金问题:有没有办法测试是否使用AES-NI?我想你可以根据性能来猜测,但这不是一种最佳或确定的测试方法.


对于不熟悉AES-NI内在函数的读者:它使用AES-NI指令集用预编译的机器代码替换字节代码.这是由JVM发生的,因此它不会出现在Java运行时或字节码的API中.

java cpu cryptography aes jvm-hotspot

31
推荐指数
1
解决办法
1万
查看次数

标签 统计

aes ×1

cpu ×1

cryptography ×1

java ×1

jvm-hotspot ×1