排行榜 统计
  • 文章总数:210 篇
  • 评论总数:1 条
  • 分类总数:7 个
  • 最后更新:11月13日

Java 虚拟化加密保护的性能损耗建议

本文阅读 2 分钟
首页 软件安全 正文

介绍#

1.VME 的虚拟机中,相对性能开销最大的地方就是方法调用,如果是逻辑运算就开销不大,所以性能的损失主要在包含了方法调用的大循环上。

比如:

for (int i = 0; i < 10000; ++i) {method(i);}

2.如果是下面的方法,性能损失比较小。

int j = 0;for (int i = 0; i < 10000; ++i) {++j;}

3.虚拟化加密是应用到函数上的, 如果一个函数加密前加密后增加1ms, 如果这个函数在一个 1000次的循环中, 那时间增加是 1000ms。

例如:

a.java 里有个a函数b.java 里有个b函数c.java 里有个c函数1)如果c函数被加密了, 并且a函数和b函数都调用了c函数。 那c函数的代码会执行两次。2)如果未加密前c函数的执行时间是10ms,a、b 调用完一共需要20ms(10ms*2次)3)然后加密后的c函数的执行时间膨胀为15ms,a、b调用完一共需要30ms(15ms * 2 次)

建议#

1.对于第三方框架的,不属于自己开发的部分,不需要保护;

2.建议只保护自己业务相关的函数,注意这些函数上是否会通过循环List map、hasnmap、set等调用;

3.建议只保护核心代码,全保护会比较慢。

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://firsource.cn/soft/368.html
.NET程序保护常见问题
« 上一篇 02-19
加密狗-虚拟时钟与硬件时钟的区别
下一篇 » 02-19