通过sha1算法可以获得一个文件的数字摘要
假设函数 public string SHA1Encrypt(string strIN){...} 可返回用SHA1算法加密后的数字串(即摘要),那可以通过这个函数得到一个文档的摘要么?

解决方案 »

  1.   

    当然可以。SHA1只能算散列算法,根本不算加密。不应该用public string SHA1Encrypt(string strIN){...} 这样的代码。因为二进制文件没办法精确转换成string,直接对二进制做SHA1。当然你自己的程序无所谓。不过你希望算出和别的软件一致的结果是不行的。实际上你可以找到很多小程序来计算文件的sha1。在codeproject或者sourceforge上都有。
      

  2.   

    再问一下,c#中 System.Security.Cryptography.SHA1CryptoServiceProvider osha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();
    然后再通过osha1 .ComputeHash(oFileStream); 其中oFileStream根据文件的路径名得到,这样子是不是可以得到任意文件格式还是有限制文件格式的 sha1值呢