从CSV文件计算哈希值的总和

时间:2014-02-13 11:05:12

标签: c# csv sha1

输入:我有.csv个文件,其中包含n列。第一行是标题。我需要计算.csv文件中一个字段的总和(例如它被称为"Value"),然后使用SHA1计算此总和的哈希值。

我看到SHA1可以使用字符串http://snipplr.com/view/70294/ 但是我怎样才能将它与.csv文件中的数据结合起来呢?你能帮帮我吗。

1 个答案:

答案 0 :(得分:1)

这样做的基本方法是:

  • 阅读CSV文件
  • 汇总值
  • ToString值传递给SHA-1
public static string GetSha1Sum()
{
     double sum = 0;
     using (CSVReader cr = new CSVReader(myfilename))
     {
         foreach (string[] line in cr)
         {
             //assuming your field is the first: 
             sum += Convert.ToDouble(line[0]);
         }
     }
     SHA1 sha1Hash= SHA1.Create();
     byte[] data = sha1Hash.ComputeHash(Encoding.UTF8.GetBytes(sum.ToString()));
     string digest = HexDigest(data);
 }

HexDigest帮助器是一个将字节数组格式化为十六进制字符串的函数:

public static string HexDigest(byte[] data)
{
    StringBuilder sBuilder = new StringBuilder();
    for (int i = 0; i < data.Length; i++)
    {
        //format the bytes in hexadecimal
        sBuilder.Append(data[i].ToString("x2"));
    }
    return sBuilder.ToString();
}

有关CSVReader

的更多信息