asp.net – HMACSHA1.ComputeHash()线程安全问题
发布时间:2020-12-16 07:35:21 所属栏目:asp.Net 来源:网络整理
导读:我问自己,在asp.net页面的代码隐藏中使用包含HMACSHA1实例的静态(共享)变量是否有危险.问题是当在同一个asp.net页面上处理多个同时请求时,所有asp.net worker-process’线程将使用相同的HMACSHA1实例. all(HMACSHA1)instance-和ComputeHash() – 由ComputeHa
我问自己,在asp.net页面的代码隐藏中使用包含HMACSHA1实例的静态(共享)变量是否有危险.问题是当在同一个asp.net页面上处理多个同时请求时,所有asp.net worker-process’线程将使用相同的HMACSHA1实例.
all(HMACSHA1)instance-和ComputeHash() – 由ComputeHash()使用/修改的方法变量将被所有线程共享(=可以修改)?这个假设是正确的吗? 因此,ComputeHash的返回值不能保证是正确的?!?! 因此我不允许在所有的asp.net-threads上使用静态/共享HMACSHA1实例. 我只是想知道你对这个问题的看法. 解决这个问题的唯一方法就是在ComputeHash()方法中使用关键路径等.但那是“我们无法接触到的”.. 问候, 解决方法
散列算法是确定性的,它们必须每次都为给定的输入返回相同的散列.
只要您每次使用相同的密钥,就不需要将它们设置为静态.但是,如果您使用无参数构造函数构造HMACSHA1实例,则它会生成随机密钥.您应该从KeyValue属性中获取随机值并将其与散列一起存储. 使用静态实例肯定是危险的.如果Thread1设置要计算的值,然后Thread2在Thread1调用ComputerHash()之前设置该值,则Thread1将获取Thread2值的散列值.如果任一线程正在设置密钥,则会发生相同的情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – MVC4 Razor – @ Html.DisplayFor没有绑定到
- asp.net-mvc – asp.net mvc 3 webgrid排序依然?sortdir =
- 如何在asp.net webforms捆绑中将cdN添加到bundle.config
- 第15章 扩展ASP.NET MVC
- ASP.NET MVC 使用Bootstrap的方法
- asp.net-mvc – ToDataSourceResult扩展不填充DataSourceRe
- asp.net-mvc – 在asp.net mvc应用程序中防止多个POST
- asp.net mvc c#获取页面的url来自
- ASP.NET Kendo UI上传
- asp.net – 如何禁用通过IIS提供的单页面应用程序HTML文件的
推荐文章
站长推荐
- asp.net-mvc-3 – ASP.NET MVC注入Http / Reques
- asp.net-mvc – 在MVC Razor视图页面中使用strin
- ASP.NET MVC 3和ASP.NET MVC 4剃刀语法更改?
- asp.net-mvc-3 – DropDownListFor Unobtrusive
- ASP.NET MVC的排队解决方案
- asp.net-mvc – 资源解释为Document但使用MIME类
- Asp.Net的FileUpload类实现上传文件实例
- asp.net – 如何管理具有非固定列号的转发器
- asp.net-web-api – 如何在WebApi中获取HttpRequ
- .net – WinInet如何确定缓存的内容和时间?
热点阅读