Hash哈希竞猜游戏系统开发说明案例及源码
Hash,一般翻译做散列,或音译为哈希,普遍将其称之为散列函数,是把任意长度的输入(又叫做预映射pre-image)哈希算法的处理,转变为固定长度的输出,则输出的数据就可称之为散列值,或称之为哈希值。这种转换是一种压缩映射,也就是一种合理压缩的过程,输出的哈希值所占用的空间远小于输入的空间,但不同的输入可能会散列成相同的输出,换言之,输出值是唯一的,但无法找寻与其一一对应的输入值。
应用方向
由于散列函数应用的多样性,它们经常是专为某一应用而设计的。
错误校验
使用一个散列函数可以很直观地检测出数据在传输时发生的错误。在数据的发送方,将散列函数应用于未发送的数据中,并将计算结果和原始数据一同发送。那么,在数据的接收方,将接收到的数据利用相同的散列函数进行处理,如果两次散列函数计算出来的结果不同,那么就说明数据在传输的过程中出现了差错。这就叫做冗余校验。
信息安全
Hash算法是现代密码体系中保密程度最高的一种方式。由于非对称算法既费时又费力的弊端,所以在数字签名协议中,单向散列函数完全的取代了传统的加密方式。
NET 6中哈希算法的简化用法
Intro
微软在.NET 6中引入一些更简单的API来使用HMAC哈希算法(MD5/SHA1/SHA256/SHA384/SHA512)
微软的叫法叫做HMAC One-Shoot method,HMAC算法在普通的哈希算法基础上增加了一个key,通过key提升了安全性,能够有效避免密码泄露被彩虹表反推出真实密码,JWT(Json Web Token)除了可以使用RSA方式外也支持使用HMAC。
功能强大的表单标签库:让JSP表单的数据绑定更加便捷高效。
国际化:支持根据用户区域显示不同国家的语言。
Spring MVC工作流程
客户端请求被DispatcherServlet(前端控制器)接收
根据HandlerMapping映射到Handle
生成Handler和HandlerInterceptor(如果有则生成)
Handler和HandlerInterceptor以HandlerExecutionChain的形式一并返回给DispatcherServlet
DispatcherServlet通过HandlerAdapter调用Handler的方法做业务逻辑处理
返回一个ModelAndView对象给DispatcherServlet
DispatcherServlet将获取的ModelAndView对象传给ViewResolver视图解析器,将逻辑视图解析成物理视图View
ViewResolver返回一个View给DispatcherServlet
DispatcherServlet根据View进行视图渲染(将模型数据填充到视图中)
DispatcherServlet将渲染后的视图响应给客户端