C# 是否可以使用windows forms C对.CSV文件执行CRC检查#

C# 是否可以使用windows forms C对.CSV文件执行CRC检查#,c#,csv,user-interface,windows-forms-designer,C#,Csv,User Interface,Windows Forms Designer,我正在使用C#(Windows窗体)构建GUI。基本上,我的GUI生成一个文件(.CSV格式) 例如,假设我的GUI生成了以下.csv文件 用户名、密码、机器ID abc,abc,123 jkl,jkl,789 rst,rst,456 现在,我将实现一个功能,在这个功能中,我的GUI应该读回上面生成的文件,而在读回时,我想验证该文件,因为在读取该.csv文件并将其内容显示到我的GUI中之前,我想验证用户是否手动更改了文件内容 从今往后,我只是检查是否有任何CRC检查方法来验证文件?或者请建议我使

我正在使用C#(Windows窗体)构建GUI。基本上,我的GUI生成一个文件(.CSV格式)

例如,假设我的GUI生成了以下.csv文件

用户名、密码、机器ID
abc,abc,123
jkl,jkl,789
rst,rst,456

现在,我将实现一个功能,在这个功能中,我的GUI应该读回上面生成的文件,而在读回时,我想验证该文件,因为在读取该.csv文件并将其内容显示到我的GUI中之前,我想验证用户是否手动更改了文件内容

从今往后,我只是检查是否有任何CRC检查方法来验证文件?或者请建议我使用任何其他方法来验证/查找用户是否手动修改了文件?

获取此类

然后像那样使用它

   DamienG.Security.Cryptography.Crc32 crc32 = new DamienG.Security.Cryptography.Crc32();
            String CSVCrc32hash = String.Empty;


            foreach (byte b in crc32.ComputeHash(**here your csv file bytes in byte[] format**))
            {

                CSVCrc32hash += b.ToString("x2").ToLower();
            }

//the CSVCrc32hash is the hash

如何保存对已创建文件的引用?下面的答案显示了一种创建校验和形式的方法,但在读回文件时,您需要知道正确的值。@PaulF是正确的。如果无法将校验和存储在内存中,则需要将校验和存储在单独的文件中,或者作为CSV文件的一部分。要求CRC检查没有多大意义,只计算散列更简单、更可靠。从SHA1Managed和friends在.NET中随时可用。文件名是固定的,将作为我的参考。我需要完全理解下面的代码我不知道它是否有效,如果有效,例如,如果我能够在生成文件之前创建校验和,那么我将只将校验和添加到文件末尾,在再次读取文件时,我将重新计算文件的校验和,并与以前存储的校验和进行比较。我说的对吗?看这里有一个示例代码,请你详细说明一下。我需要在生成CSV文件或读取生成的CSV文件时合并上述代码吗?例如,您需要以两种方式使用此代码。。生成文件后,在将其存储在DB中或发送到客户端之前,您将创建crc32哈希并将其与文件名一起存储在某个位置(DB、CSV文件等)。因此,当您要验证文件时,将生成哈希值,并将哈希值与创建文件时存储的文件名的哈希值进行比较。例如-->我刚刚生成了一个名为report_05_10_2017.csv的csv文件,在我将文件存储到某个地方或将其提供给客户端之前,我将通过上述方法传递该文件并获取CSVCrc32hash。。。然后我可以在DB中创建一个表,比如ID、FileName、crc32散列,并将文件名及其散列存储在那里。。当您想要验证名为report_05_10_2017.csv的文件时,您将再次为该文件创建哈希,并将其与数据库中的哈希进行比较。如果它们相同,则它们将具有相同的哈希