当前位置: 首页 > 知识库问答 >
问题:

加密和解密速度之间的奇怪差异

闻飞跃
2023-03-14

我在写需要加密和解密文件的应用程序。我的问题是解密比加密慢5倍。我已经删除了所有的文件读/写操作,并且只对加密进程进行了基准测试。结果非常令人惊讶:

使用encryptionCipher.doFinal()(是javax.crypto.cipher的实例)加密1.5MB字节数组

~5800毫秒

我很惊讶,因为我知道AES解密和加密是对称的过程,在加密和解密速度上应该没有区别。

我使用AES/cbc/pkcs7padding密码,密钥为256位。

共有1个答案

沈宇定
2023-03-14

在android中加密和解密可能需要时间(因为代码转换和可用资源少)。JNI更适合这样的任务。使用openssl例程加密和解密,并通过JNI接口在java代码中调用它们。

 类似资料:
  • 问题内容: 嗨,我正在尝试弄清楚如何复制在C#中但在Java中完成的文本加密。在C#中,仍然让我感到困惑并且似乎无法找到答案的那部分代码是: 基本上,Java中的这段代码等效于什么? 更新: 使用提供的PasswordDeriveBytes代码(第二个代码段),我能够完美地复制C#代码。谢谢Maarten Bodewes。 但似乎无法使其跨平台运行。基本上设置了解码代码(我在C#3.5中无法更改)

  • 我创建了两个长列表,重复两个不同的值。在第一个列表中,值交替出现,在第二个列表中,一个值出现在另一个值之前: 然后我迭代它们,对它们不做任何操作: 两者哪个迭代更快?取决于我如何测量!我用每种计时方法跑了50场比赛: 为什么这两种计时方法给我的结果完全相反?为什么这两个列表之间存在速度差异?我希望有两次25-25,而不是50-0和0-50。 之前类似问题的原因以及我认为他们不应该对此负责的原因:

  • 首先,为我将要发布的代码量道歉。我试图使用Java应用程序中的RSA公钥对Android应用程序中的消息进行加密,然后将密文发送回Java环境进行解密,但在尝试解密时,我总是会遇到以下错误: 密文确实包含正确的字节数(512),因此看到“错误填充”异常会让人困惑。SO上的其他类似帖子建议使用“RSA/ECB/PKCS1Padding”作为算法,但这不起作用。 令人烦恼的是,Android环境中的加

  • 我使用的是一个来自chillkat的Delphi组件,它为我做AES加密。它就像一个魅力,服务器接受我的加密请求。所以我尝试使用mcrypt创建一个php挂件。但与Delphi Chillcat结果相比,PHP mcypt结果是不同的,即使所有参数都相同。因此,服务器拒绝php请求。 所有加密设置都是相同的: < li >密码名称:AES 128 < li >密码模式:ECB < li >填充方案

  • 问题内容: 我已经编写了服务器,并在中编写了客户端。他们的工作是将秘密消息从服务器发送到客户端,并使用进行加密。我正在使用库,也就是说,我使用私钥初始化对象,并使用加密消息。然后,我将此加密的消息发送到服务器,并尝试使用库 使用相同的私钥对其 进行 解密。问题是它无法正确解密。它总是输出128位长的消息,其中秘密消息被随机放置在其中,通常应返回just 。 问题答案: 问题是关于填充。Python

  • 问题内容: 我一直在寻找在PHP服务器和Java客户端之间加密数据的方法。单独地,代码工作正常,我想在PHP服务器上坚持使用OpenSSL。 在尝试解码PHP加密字符串时遇到错误时,您是否看到了我所缺少的任何内容: PHP: PHP输出: 加密之前:Hello World !!! 在Base64之前:SGVsbG8gV29ybGQhISE = 加密镜头:44 加密的b64:U21yMVRGQTdR