gpt4 book ai didi

c# - AES 加密和 C#

转载 作者:IT王子 更新时间:2023-10-29 04:48:13 33 4
gpt4 key购买 nike

根据我的阅读,我不确定 AES 是一种单一的标准化算法,可以使用不同长度的 key ,还是一系列类似的算法?我的意思是,如果我发现任何 2 个 AES 实现采用 128 位 key ,我是否应该确信它们将以相同方式工作(除了错误)?

特别是在.Net/C#中,我很困惑为什么抽象基类System.Security.Cryptography.Aes有两个实现:System.Security.Cryptography.AesCryptoServiceProvider & System.Security.Cryptography.AesManaged

然后 AES 和 Rijndael 之间似乎有区别/重叠,.NET 有 RijndaelRijndaelManaged 类,以及 RijndaelManagedTransform>/p>

所有这些之间有什么区别?我注意到 AES 类似乎只存在于 .NET 3.5 之后,而 Rijndael 从 1.0 开始就存在

抱歉,如果这些是愚蠢的问题,除了安全哈希函数之外,我是加密的新手。

最佳答案

AES,高级加密标准,在 FIPS PUB 197 中定义三个对称分组密码:AES-128、AES-192 和 AES-256。这三种算法都是由 Rijndael 算法的特定参数选择定义的。

AES-128-encryption 是一个函数 (key, data) -> (encryption)。Rijndael-encryption 是一个函数 (key, data, block-size, key-size) -> (encryption).

AesCryptoServiceProvider 使用底层 Windows CryptoAPI 来执行加密。AesManaged 在纯托管代码中执行加密。 RijndaelManaged 支持所有参数选择(也在纯托管代码中)。

使用 AesCryptoServiceProvider 的优势包括提高速度的潜力以及 CryptoAPI 通过 FIPS 认证(在某些版本的 Windows 上)这一事实。

AesManaged 的优点包括可移植性(并非所有版本的 Windows 都支持 AesCryptoServiceProvider)。

RijndaelManaged 的唯一优点是它在 .NET 框架的早期版本中受支持 - 我从未见过有人使用非 AES 参数选择。

关于c# - AES 加密和 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3683277/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com