当前位置: 首页 > news >正文

北京海淀网站制作公司房山区做网站

北京海淀网站制作公司,房山区做网站,海外网站制作,app客户端开发公司咨询区 Nick Berardi请问我如何通过 C# 计算 string 的 crc32 校验和#xff1f;回答区 Pete我一直震撼的一件事就是 .NET 底层框架中居然没有提供对 CRC32 的直接支持#xff0c;CRC32 一直都是 ZIP,RAR 压缩中做校验和的绝佳方案#xff0c;在 .NET 中你可以这么使用。var… 咨询区 Nick Berardi请问我如何通过 C# 计算 string 的 crc32 校验和回答区 Pete我一直震撼的一件事就是 .NET 底层框架中居然没有提供对 CRC32 的直接支持CRC32 一直都是 ZIP,RAR 压缩中做校验和的绝佳方案在 .NET 中你可以这么使用。var crc32  new Crc32(); var hash  String.Empty;using (var fs  File.Open(c:\\myfile.txt, FileMode.Open))foreach (byte b in crc32.ComputeHash(fs)) hash  b.ToString(x2).ToLower();Console.WriteLine(CRC-32 is {0}, hash);更详细的资料可参考https://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net 和 https://github.com/damieng/DamienGKit/blob/master/CSharp/DamienG.Library/Security/Cryptography/Crc32.csSharpC上面朋友的回答是基于 File 的方式其实替换成 string 会更加直接方便我的项目中定义了一个 Crc32 帮助类代码如下/// summary /// Performs 32-bit reversed cyclic redundancy checks. /// /summary public class Crc32 {#region Constants/// summary/// Generator polynomial (modulo 2) for the reversed CRC32 algorithm. /// /summaryprivate const UInt32 s_generator  0xEDB88320;#endregion#region Constructors/// summary/// Creates a new instance of the Crc32 class./// /summarypublic Crc32(){// Constructs the checksum lookup table. Used to optimize the checksum.m_checksumTable  Enumerable.Range(0, 256).Select(i {var tableEntry  (uint)i;for (var j  0; j  8; j){tableEntry  ((tableEntry  1) ! 0)? (s_generator ^ (tableEntry  1)) : (tableEntry  1);}return tableEntry;}).ToArray();}#endregion#region Methods/// summary/// Calculates the checksum of the byte stream./// /summary/// param namebyteStreamThe byte stream to calculate the checksum for./param/// returnsA 32-bit reversed checksum./returnspublic UInt32 GetT(IEnumerableT byteStream){try{// Initialize checksumRegister to 0xFFFFFFFF and calculate the checksum.return ~byteStream.Aggregate(0xFFFFFFFF, (checksumRegister, currentByte)  (m_checksumTable[(checksumRegister  0xFF) ^ Convert.ToByte(currentByte)] ^ (checksumRegister  8)));}catch (FormatException e){throw new CrcException(Could not read the stream out as bytes., e);}catch (InvalidCastException e){throw new CrcException(Could not read the stream out as bytes., e);}catch (OverflowException e){throw new CrcException(Could not read the stream out as bytes., e);}}#endregion#region Fields/// summary/// Contains a cache of calculated checksum chunks./// /summaryprivate readonly UInt32[] m_checksumTable;#endregion }帮助类定义好后接下来就可以这么使用了。var arrayOfBytes  Encoding.ASCII.GetBytes(The quick brown fox jumps over the lazy dog);var crc32  new Crc32(); Console.WriteLine(crc32.Get(arrayOfBytes).ToString(X));对了你可以用 https://crccalc.com/ 以在线的方式来测试你的 crc32 的输入输出。点评区 两位大佬提供的方式不错学习了最后的 Online https://crccalc.com/ 太方便了有兴趣可以尝试一下。
http://wiki.neutronadmin.com/news/117772/

相关文章:

  • 盗版小说网站怎么赚钱徐州营销型网站制使
  • 华大基因 建设网站做网站源代码需要买吗
  • 第三方开放平台有哪些网络seo啥意思
  • 制作个人博客网站个人网站建设知乎
  • 优秀的店面空间设计网站网站数据库建设计划书
  • 网站建设优化服务资讯烟台开发区建设业联合会网站
  • flash网站开发教程潍坊网站建设 潍坊做网站
  • oss做网站网架结构厂家
  • 用百度云服务器做网站seo怎么做
  • 域名建网站公司网页设计入门与应用电子书pdf百度网盘
  • 两学一做 网站源码区域工业互联网平台
  • 旅游网站建设经费预算运动分类的网站设计论文
  • 网站外贸推广html5网站设计
  • 上虞宇普电器网站建设农业网站建设策划书
  • 做百度网站接到多少客户电话号码建设个网站需要什么
  • 网站建设 百度文库门户网站的布局
  • 好网站开发策划要求建设银行不良资产处置网站
  • 玩具网站建设方案企业网站源码变现方法
  • 网站开发工程师薪酬待遇华为公司网站建设相关内容
  • 湘潭网站建设问下磐石网络国际数据公司idc
  • wordpress手机端底部按钮长沙网站排名优化费用
  • 建设网站要钱吗pc网站开发使用什么布局好
  • 深圳网站制作公司兴田德润官网多少招聘网站内容建设
  • 上海做原创网站网站开发 脚本之家
  • 查找邮箱注册过的网站福建省建设厅网站节能办
  • 深圳网站美化福州房产网站建设
  • 东莞齐诺做网站网络市场调研的步骤
  • 济宁网站建设 水木网站怎么更改关键词
  • 网站建设费用计入哪个科目网站空间 价格
  • 北京好的建站团队专业做网站服务