小编JBa*_*ber的帖子

无论流中的内容是什么,C#BaseStream都返回相同的MD5哈希值

问题就是这一切.这段代码

string hash = "";
using (var md5 = System.Security.Cryptography.MD5.Create())  
{  
    hash = Convert.ToBase64String(md5.ComputeHash(streamReader.BaseStream));  
}  
Run Code Online (Sandbox Code Playgroud)

将始终返回相同的哈希值.

如果我将所有数据从BaseStream传递到MemoryStream,它每次都会给出一个唯一的哈希值.跑步也是如此

string hash = "";  
using (var md5 = System.Security.Cryptography.MD5.Create())  
{  
    hash = Convert.ToBase64String(md5.ComputeHash(
              Encoding.ASCII.GetBytes(streamReader.ReadToEnd())));  
}  
Run Code Online (Sandbox Code Playgroud)

第二个实际上更快,但我听说这是不好的做法.

我的问题是,使用ComputeHash(流)的正确方法是什么.对我而言,它总是(我的意思是,即使我重新启动程序,意味着它不仅仅是散列引用)也会返回相同的散列,而不管流中的数据如何.

.net c# hash md5 stream

6
推荐指数
1
解决办法
1350
查看次数

Scala向自己发送消息好还是坏?

我正在使用json4s和play框架,我有一些地方可以在将来运行post/get请求,然后onSuccess将响应解析为一个对象并让actor将它发送回自身..这是一个例子:

WS.url(authUrl).post("username=admin&password=admin") map {
  response =>
    self ! (parse(response.body) \ "body").extract[AuthObject]
}
Run Code Online (Sandbox Code Playgroud)

然后回到receive方法:

case AuthObject(_, sid) => //handle authorization token
Run Code Online (Sandbox Code Playgroud)

这是不好的做法吗?什么是正确的方法去做?我看到的优点是能够让你的演员数据流由单一控制结构处理,但当然我说这是一个优势是错误的.

asynchronous scala actor akka playframework

4
推荐指数
1
解决办法
190
查看次数

标签 统计

.net ×1

actor ×1

akka ×1

asynchronous ×1

c# ×1

hash ×1

md5 ×1

playframework ×1

scala ×1

stream ×1