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

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

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

我应该使用哪种编码而不是UTF8 / 16/32?

谢谢

最佳答案 加密参数与您选择的编码完全无关.加密参数始终以字节为单位进行定义.编码涉及将字符转换为字节和字节返回字符.他们“碰撞”的唯一地方是使用密码生成加密密钥.您应该使用专门为此设计的类,如
Rfc2898DeriveBytes.

大多数时候,我看到使用ASCII编码的程序员使用UTF8编码会得到更好的服务. UTF8编码以与ASCII编码完全相同的方式对ASCII字符进行编码和解码,但它也正确有效地编码了Unicode的所有其余部分.如果在遇到非ASCII字符时需要生成异常,请使用ASCII编码.

点赞