如何正确使用.NET加密服务

时间:2017-03-04 14:57:53

标签: c# encryption cryptography

我需要为网络协议实现对称算法。我已经编写了ICryptoTransform类,但它确实有效。

现在我对SymmetricAlgorithm类(由AesManaged继承,DES和所有其他算法)的职责感到困惑。我在互联网上找到的每个例子都只使用一次,没有人解释这个课程的全部职责是什么。

例如,如果我将它用于网络通信:

我是否应该为每个与套接字的连接创建一个SymmetricAlgorithm实例并让它保存密钥?或者我应该将密钥保存在SymmetricAlgorithm的实现之外,并将实例用作静态类,或者每次我想为已经使用的连接加密/解密某些内容时创建一个新实例?

因为我的算法没有使用初始化向量,但没有随机盐。那个盐将等于使用实际密钥加密的字节数,所以如果SymmetricAlgorithm的实现必须保持这个" salt"或者我必须将该盐保存在实例之外,并在每次拨打CreateEncryptorCreateDecryptor时将其作为参数传递。

我的SymmetricAlgorithm实施是否应该包含有关加密的所有信息?

0 个答案:

没有答案