【问题标题】:Cipher.getInstance is too slowCipher.getInstance 太慢了
【发布时间】:2014-03-12 12:47:18
【问题描述】:

以下代码行在我的计算机(Windows 7)上用时不到一秒,在 Redhat 服务器上用时约 20 秒:

Cipher cipher = Cipher.getInstance(TRANSFORMATION);

其中 TRANSFORMATION 定义为:

private static final String TRANSFORMATION = "Blowfish/ECB/PKCS5Padding";

这种行为的根源是什么?

谢谢。

【问题讨论】:

    标签: java encryption blowfish


    【解决方案1】:

    Bouncy Castle 提供程序的初始化和 - 可能 - 一个缓慢的 /dev/random

    【讨论】:

    • 感谢您的快速回答,但我不希望您因提到 redhat 和 windows 而被误导,因为我还在另一个 redhat 上进行了测试,而且它也只需不到一秒钟的时间。
    • 不同的 CPU(例如较新的 Intel)已经可以改变 /dev/random 的特性,所以看看吧。
    • 如果 /dev/random 很慢,我该怎么办?
    • 检查哪些应用程序使用/dev/random,并在可能的情况下将它们切换到/dev/urandom。或者添加为/dev/random 生成熵的设备。我在带有 Java 应用程序的 Ubuntu 上遇到了类似的问题。我将检查是否有针对 Java 的简单解决方案。顺便说一句,您只需从中读取字节即可轻松检查/dev/random 的速度(使用dd 命令)。请注意,它应该有点慢。
    • 它也发生在 Eclipse 中。我该怎么做才能加快速度?
    猜你喜欢
    • 2013-03-10
    • 2014-06-07
    • 2016-05-31
    • 2011-07-07
    • 2015-08-23
    • 2012-07-05
    • 2016-01-08
    • 2021-03-26
    • 2011-10-26
    相关资源
    最近更新 更多