Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 加密和解密时是否需要使用初始化向量?_C#_Encryption Symmetric - Fatal编程技术网

C# 加密和解密时是否需要使用初始化向量?

C# 加密和解密时是否需要使用初始化向量?,c#,encryption-symmetric,C#,Encryption Symmetric,我是C#的新手,我的任务是加密C#中的文件并将其放到服务器上(提到使用256位AES加密)。无论谁想要它,他们都应该先解密,然后使用它 但我对此有一些疑问:我正在使用AESCryptServiceProvider类。因为我使用的方法是CreateEncryptor(Byte[],Byte[])。但我想问的问题是,如果我使用key和IV对文件进行加密,那么我必须使用user key和IV共享这两个密钥 在这种情况下我该怎么办?我希望在加密和解密时只使用密钥。我该怎么做 我对此完全感到困惑。请建议我

我是C#的新手,我的任务是加密C#中的文件并将其放到服务器上(提到使用256位AES加密)。无论谁想要它,他们都应该先解密,然后使用它

但我对此有一些疑问:我正在使用AESCryptServiceProvider类。因为我使用的方法是
CreateEncryptor(Byte[],Byte[])
。但我想问的问题是,如果我使用key和IV对文件进行加密,那么我必须使用user key和IV共享这两个密钥

在这种情况下我该怎么办?我希望在加密和解密时只使用密钥。我该怎么做

我对此完全感到困惑。请建议我走几步


谢谢

据我所知,IV不需要保密,因此您可以将其与加密数据一起存储在服务器上。只需确保每一次静脉注射都是随机的,并且不要重复使用

有关IV的更多详细信息,请参见此处:

嘿,伙计们,还有什么办法可以避免使用静脉注射吗?给我的指示是不要使用静脉注射。还有没有办法避免使用静脉注射?给我的指示是不要使用IV@BhaveshShah使用AESCryptServiceProvider类无法避免IV,但您从何处获得IV(唯一或不唯一)取决于您自己。如果你不使用唯一的IVs,你的加密数据将很容易解密。一个简短的(可选的)IV是WEP如此容易被破解的原因之一。谢谢你们的回复。我想再问一个问题,C#中的哪门课能帮助我跳过使用IV??你能告诉我吗?@BhaveshShah据我所知,没有这方面的课程。你需要用静脉注射的方法。如果安全性不是那么重要,您可以尝试其他加密/模糊数据的方法。