我们使用以下库
import "crypto/sha1"
在运行golangci lint时,我们得到了以下错误:
G505: Blocklisted import crypto/sha1: weak cryptographic primitive (gosec) for "crypto/sha1"
G401: Use of weak cryptographic primitive (gosec)
sha := sha1.New()
有什么事情我可以做而不排斥他们吗?不确定我是否理解这些问题。如果它与安全无关,那么排除它就是简单的任务。。。
更新
我们正在做的是
fdrContent, err := ioutil.ReadFile(filepath.Join(path))
// gets the hashcode of the FDR file
h := sha1.New()
code, err := h.Write(fdrContent)
return code, err
我在自己的gtarsum
项目中使用h.Write
,如下所示:
h := sha256.New()
for {
buf := make([]byte, 1024*1024)
bytesRead, err := tr.Read(buf)
if err != nil {
if err != io.EOF {
panic(err)
}
}
if bytesRead > 0 {
_, err := h.Write(buf[:bytesRead])
如果没有明显的性能问题,您所要做的就是切换到sha256。
没有更多警告
这个问题来自sha1碰撞,我在这里已经记录了它,它来自shattered.io
项目。