C# 编码中应该使用什么加密,它如何影响密钥和初始化向量?

C# 编码中应该使用什么加密,它如何影响密钥和初始化向量?,c#,encryption,encoding,key,initialization-vector,C#,Encryption,Encoding,Key,Initialization Vector,我正在研究加密以及编码如何影响密钥和初始化向量的生成 我正在使用一个TripleDESCryptoServiceProvider,它需要使用ASCII编码的24字节密钥和8字节初始化向量。如果我决定使用不同的编码,这将如何影响密钥和初始化向量的生成 我应该使用哪种编码来代替UTF8/16/32 谢谢加密参数与您选择的编码完全无关。加密参数始终以字节为单位定义。编码涉及将字符转换为字节,并将字节转换回字符。它们“冲突”的唯一地方是使用密码生成加密密钥。您应该使用专门为此设计的类,如 大多数时候,我

我正在研究加密以及编码如何影响密钥和初始化向量的生成

我正在使用一个
TripleDESCryptoServiceProvider
,它需要使用ASCII编码的24字节密钥和8字节初始化向量。如果我决定使用不同的编码,这将如何影响密钥和初始化向量的生成

我应该使用哪种编码来代替UTF8/16/32


谢谢

加密参数与您选择的编码完全无关。加密参数始终以字节为单位定义。编码涉及将字符转换为字节,并将字节转换回字符。它们“冲突”的唯一地方是使用密码生成加密密钥。您应该使用专门为此设计的类,如


大多数时候,我看到程序员使用ASCII编码,使用UTF8编码会更好。UTF8编码编码和解码ASCII字符的方式与ASCII编码完全相同,但它也能正确有效地编码所有其他Unicode字符。如果遇到非ASCII字符时需要生成异常,请使用ASCII编码。

我不是专家,但是,TripleDES不再被认为是足够安全的。微软建议使用AES 256位及以上。我认为文本编码不会影响加密的强度,只会影响“纯文本”密钥的长度和IV。

使用Rfc2898DeriveBytes有什么原因吗?我不打算在客户端机器上安装应用程序后更改初始化向量或密钥。TripleDES没有任何不安全之处。甚至没有人能打破它。然而,就可比安全性而言,它比AES慢得多。许多专家建议使用AES-128,并且没有任何东西“高于”AES-256。注意。谢谢你,加密不是我的专长。