草庐IT

STANDARD_HASH

全部标签

hash - golang中如何动态切换哈希算法?

我希望能够根据调用者的输入在哈希算法之间切换,例如,实现一个函数:funcGenericHash(dat[]byte,hashunint)(string,error){...}其中哈希是由crypto.Hash指定的算法类型.我不确定如何编写此函数,尤其是导入语句应该放在哪里。如果我在顶部包含我将使用的算法的所有导入语句,go会提示它们已导入但未使用。反正有按需导入吗? 最佳答案 你需要做的是importthepackagesfortheirsideeffectsonly(即在导入包时使用空白标识符)。这意味着将执行导入包的init

hash - Go 中的 OpenPGP 错误 : "crypto: requested hash function is unavailable"

我正在玩弄openpgp通过制作一个简单的程序来加密短消息和ASCII装甲,为Go打包。我目前的代码是:packagemainimport("code.google.com/p/go.crypto/openpgp""code.google.com/p/go.crypto/openpgp/armor""fmt""log""os")funcmain(){to,err:=openpgp.NewEntity("JohnSmith","comment","john@example.com",nil)iferr!=nil{log.Fatal(err)}from,err:=openpgp.NewEn

GoLang, "hash.Write", "write()"函数是从哪里来的?

funchash(sstring)uint32{h:=fnv.New32a()h.Write([]byte(s))returnh.Sum32()}对于这段代码。我明白h是什么类型。它是哈希。但是对于Hash类型,我没有看到任何Write()方法。http://golang.org/pkg/hash/这是什么Write()?谢谢 最佳答案 Hash接口(interface)嵌入Writer界面。因此,任何类型想要实现Hash接口(interface),也需要实现包含Write方法的Writer接口(interface)。使用Write

hash - 调用 Write(val) 然后调用 Sum(nil) 与哈希中的 Sum(val) 之间的区别?

我正在研究使用Go的crypto包,并且我有一个我正在尝试弄清楚的简单示例。我知道我可以将io.WriteString与散列一起使用,但我想在将它与另一个库连接之前直接了解散列对象。packagemainimport("crypto/md5""fmt")funcmain(){val:=[]byte("HelloWorld")h:=md5.New()h.Write(val)fmt.Printf("%x\n",h.Sum(nil))fmt.Println()h2:=md5.New()fmt.Printf("%x\n",h2.Sum(val))}Runningit产生这个输出:b10a8db

google-app-engine - 如何在 GAE Standard Go 中缩小到 0 个实例

我已将Golang应用程序部署到GoogleCloudPlatform的AppEngineStandard环境。我的app.yaml包含以下几行:automatic_scaling:min_idle_instances:0max_idle_instances:0min_pending_latency:automaticmax_pending_latency:automaticmin_instances:0max_instances:2我的意图是应用程序在空闲时应缩减到0个实例,并生成最多2个实例来处理传入的请求。调用该服务后,我注意到它从未缩减到0个实例。我在web控制台打开服务配置,

hash - Bob Jenkins 的 Hash 性能不佳

我正在构建一个Bloom过滤器并查看要使用的哈希值和BobJenkins'hash由于分布均匀,这似乎是一个不错的选择。我将给定的C++代码改编为Go(可能犯了一个错误,但它似乎有效)。我着手对哈希的成本进行基准测试,发现Gostd库中的SHA1哈希要快得多。PASSBenchmarkJenkins10000002649ns/opBenchmarkSHA25610000001218ns/opBenchmarkSHA15000000462ns/op当我读到您不应在此用例中使用加密哈希时,我是否被误导了?还是标准库代码比我的优化得多?packagejenkinsimport("bytes"

hash - Go, midstate SHA-256 哈希

有128字节的数据,例如:00000001c570c4764aadb3f09895619f549000b8b51a789e7f58ea750000709700000000103ca064f8c76c390683f8203043e91466a7fcc40e6ebc428fbcc2d89b574a864db8345b1b00b5ac00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000并且想要对其执行SHA-256哈希,必须将其分成两个6

hash - 如何在 Go 中获取十六进制编码的 md5 哈希

我正在尝试在Go中获取文件的md5哈希值,如下所示:running_hash:=md5.New();//typehash.Hashrunning_hash.Write(data);//datais[]bytesum:=running_hash.Sum();//[]uint8accordingtothecompiler但是当我尝试通过sumstring:=string(sum);//returns'Ӿ��]앿��N��'orsimilar当哈希应该是d3be9e835dec95bfbef34ebe1fbf03da时。当我尝试逐字节转换时,我得到了同样的废话,只是字符不同。我要如何获取散列

multithreading - 进程可以读取自己的 "standard out"流吗?

进程如何读取自己的输出流?我正在编写自动化测试,它在与测试相同的进程中启动一些应用程序子进程(应用程序)。因此,标准输出是测试输出和应用程序输出的混合。我想在运行时读取输出流,如果我看到来自应用程序的错误,则测试失败。这可能/可行吗?如果可以,我该怎么做?注意:我知道我可以将应用程序作为它们自己的独立进程启动,然后读取它们的输出流。从我现在的位置来看,这是很多工作。另请注意,这不是Howtotestafunction'soutput(stdout/stderr)inGounittests的骗局,尽管那张票很相似而且很有帮助。另一张票是关于捕获单个函数调用的输出。这张票是关于连续阅读整个

hash - 加密/bcrypt : hashedPassword is not the hash of the given password

我加密用户的密码并保存到数据库。然后用户登录,比较散列密码和普通密码,我得到crypto/bcrypt:hashedPasswordisnotthehashofthegivenpassword错误。怎么了?funcencryptPassword(passwordstring)(string,error){bytePass:=[]byte(password)hashedPassword,err:=bcrypt.GenerateFromPassword(bytePass,bcrypt.DefaultCost)iferr!=nil{log.Printf("ERROR:EncryptPassw