简体   繁体   中英

using Go linter with security issue

we use the following lib

import "crypto/sha1"

while running golangci-lint we got the following errors :

G505: Blocklisted import crypto/sha1: weak cryptographic primitive (gosec) for "crypto/sha1"


 G401: Use of weak cryptographic primitive (gosec)
        sha := sha1.New()

Is there is something that I can do without excluding them? not sure that I understand those issues. if it was not related to security it's simple tasks to exclude ...

update

what we are doing is

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

I use h.Write in my own gtarsum project as in here :

        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])

All you have to do, if there is no obvious performance issue, is to switch to sha256 .
No more warning.
The issue comes sha1 collision, that I have documented here , from the shattered.io project.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM