【问题标题】:what are common AES encryption paddings in both c#.NET and javac#.NET 和 java 中常见的 AES 加密填充是什么
【发布时间】:2009-05-14 15:53:54
【问题描述】:

我想知道 AES 加密的哪些填充模式在 java 和 C#.NET 中都很常见

谢谢 粑粑

【问题讨论】:

    标签: c# java .net encryption padding


    【解决方案1】:

    无,PKCS7,零

    Dotnet 和所有 JCE 提供程序一样支持这 3 个。

    如果您正在寻找 java.net AES,我会推荐 Bouncy Castle,它们都有免费的库。

    http://www.bouncycastle.org/

    【讨论】:

    • -1 用于充气城堡(严重错误)。如果您开发一个加密应用程序,那么让它独立于提供者是一个好主意。 JCE 设计得很好。然后与各种提供商进行测试。
    • @Acc ,除了充气城堡之外,没有太多的跨 .net / java 库选项......如果你知道更好的东西,你应该留下更有帮助的评论
    • 我正在尝试使用 bouncycastle,但文档/示例似乎严重缺乏。
    【解决方案2】:

    Wikipedia 概述了几个填充算法。我已经看到在一些重要的应用程序(例如 Oracle 客户端)中使用了 PKCS7。它的实现非常简单,因此您不必担心任何一个平台都不支持开箱即用。

    【讨论】:

      【解决方案3】:

      我正在做一个课堂项目,并通过艰难的方式弄清楚了一些细节。首先,Java 支持开箱即用的 PKCS7 填充,但名称不同。它被称为PKCS5。一些程序员使用 Bouncy Castle 是因为错误地认为 Java 不支持 PKCS7,但支持不同的(较旧的)填充类型。这应该不重要,除了 Bouncy Castle 原来有可怕的错误。我的项目依赖于他们对 AES 的实施。如果您使用单个 doFinal 一次加密所有数据,它会起作用,但加密块会出现可怕的错误,结果甚至会根据用于传递数据的缓冲区大小而变化。切换回 Sun 的实现使用相同的代码给出了正确的结果。不用说,这花费了我们几天的调试时间。

      【讨论】:

        猜你喜欢
        • 2013-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-16
        • 2016-09-03
        相关资源
        最近更新 更多