仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1129|回复: 10
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之C#完成像Git那样盘算Hash值仓酷云

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你觉得数据库怎么样?从GitTipoftheWeek:Objects一文中得知,Git是如许盘算提交内容的Hash值的:


  • Hash算法用的是SHA1
  • 盘算前,会在内容后面增加"blob内容长度0",0暗示的是空字符(NUL)。
  • 盘算出来的Hash值是40位16进制序列(40-characterhexadecimalsequence)。
好比提交一个空文件,Git盘算出来的Hash值是e69de29bb2d1d6434b8b29ae775ad8c2e48c5391,实践盘算的内容是"blob00"。
在Mac的Terminal中输出命令:echo-en"blob00"|shasum,盘算出来也是一样的Hash值。
那在C#中怎样以一样的办法盘算Hash值呢?


  • SHA1Hash算法——C#中对应的完成是SHA1Managed。
  • 和Git一样在内容后面增加字符串——string.Format("blob{0}0{1}",Content.Length,Content);
  • 天生40位16进制的Hash值——ToString("x2")。
详细完成代码以下:
  1. publicclassAutosave{publicstringContent{get;set;}publicstringHash{get;set;}publicvoidGenerateHash(){varcomputedContent=string.Format("blob{0}0{1}",Content.Length,Content);varhashBytes=newSHA1Managed().ComputeHash(Encoding.UTF8.GetBytes(computedContent));varsb=newStringBuilder();for(inti=0;i<hashBytes.Length;i++){sb.Append(hashBytes[i].ToString("x2"));}this.Hash=sb.ToString();}}
复制代码

测试代码以下:
  1. publicclassAutosaveTest{[Fact]publicvoidGenerateHash_Test(){varautosave=newAutosave();autosave.Content="";autosave.GenerateHash();Assert.Equal("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",autosave.Hash);}}
复制代码

测试了局:
  1. 1passed,0failed,0skipped,took1.13seconds(xUnit.net1.9.2build1705).
复制代码
弄定!
也不知道,我同学昨天说数据挖掘很好。
灵魂腐蚀 该用户已被删除
沙发
 楼主| 发表于 2015-1-20 18:19:52 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
板凳
发表于 2015-1-29 14:10:09 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
小魔女 该用户已被删除
地板
发表于 2015-1-29 14:10:09 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
老尸 该用户已被删除
5#
发表于 2015-1-30 16:45:16 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
谁可相欹 该用户已被删除
6#
发表于 2015-2-6 14:02:27 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
admin 该用户已被删除
7#
发表于 2015-2-6 14:34:56 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
山那边是海 该用户已被删除
8#
发表于 2015-2-9 16:05:19 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
简单生活 该用户已被删除
9#
发表于 2015-2-27 09:50:59 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
爱飞 该用户已被删除
10#
发表于 2015-3-16 18:57:28 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
莫相离 该用户已被删除
11#
发表于 2015-3-22 23:39:28 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 04:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表