哪种 BouncyCastle API 支持的加密算法对于 C# .NET 中的短字符串加密最快并且非常安全?
Which BouncyCastle API-supported Encryption algorithm is fastest for short string encryption in C# .NET and pretty safe?
我试图在 Whosebug 上搜索这个特定问题的答案,但找不到好的答案。
BouncyCastle API 为 .NET 提供了大量不同的加密算法。在这种情况下,我必须 select 以下用例的加密算法:
加密数千个短字符串以存储在未加密的文件中,典型长度为 10-30 个字符。
加密只需要适度安全,所有字符串都将使用相同的密钥但不同的初始化向量进行加密。不需要诸如授权之类的东西(就像在 AES-GCM 中一样)。
这样几千个小字符串的加解密,申请哪种加密算法最快最直接?我将每个字符串的加密数据存储为文件中的BASE64。
感谢您的指教!
该处理器仍然具有 AES-NI,因此通过 AES.Create
使用它似乎是最合乎逻辑的。更高端的解决方案是在 ECB 之外创建 CTR 模式(并缓存密钥流)。
否则你正在寻找软件中的快速流密码。您可以检查 Salsa20 是否适合您。不幸的是,这是我在 Bouncy Castle for C# 中可以找到的唯一与 eStream 兼容的密码。
请注意,您可能想研究多线程,我肯定会检查在使用流密码时是否可以使用顺序随机数,因为为每个加密生成 128 位随机值似乎很浪费。
我试图在 Whosebug 上搜索这个特定问题的答案,但找不到好的答案。
BouncyCastle API 为 .NET 提供了大量不同的加密算法。在这种情况下,我必须 select 以下用例的加密算法:
加密数千个短字符串以存储在未加密的文件中,典型长度为 10-30 个字符。
加密只需要适度安全,所有字符串都将使用相同的密钥但不同的初始化向量进行加密。不需要诸如授权之类的东西(就像在 AES-GCM 中一样)。
这样几千个小字符串的加解密,申请哪种加密算法最快最直接?我将每个字符串的加密数据存储为文件中的BASE64。
感谢您的指教!
该处理器仍然具有 AES-NI,因此通过 AES.Create
使用它似乎是最合乎逻辑的。更高端的解决方案是在 ECB 之外创建 CTR 模式(并缓存密钥流)。
否则你正在寻找软件中的快速流密码。您可以检查 Salsa20 是否适合您。不幸的是,这是我在 Bouncy Castle for C# 中可以找到的唯一与 eStream 兼容的密码。
请注意,您可能想研究多线程,我肯定会检查在使用流密码时是否可以使用顺序随机数,因为为每个加密生成 128 位随机值似乎很浪费。