package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"log"
"os"
"path/filepath"
)
func findFiles() {
filepath.Walk("/", func(path string, info os.FileInfo, err error) error {
fmt.Println(path)
file, err := os.Open(path)
if err != nil {
log.Println(err)
}
defer file.Close()
hash := sha256.New()
fmt.Println(hex.EncodeToString(hash.Sum(nil)))
return nil
})
}
func main() {
findFiles()
}
所以我想做的是在调用函数时不确定哈希值。
我希望它访问系统中的所有目录和所有文件,而不是对其进行散列并仅将它们打印出来。
答案 0 :(得分:1)
我相信您正在寻找:
package main
import (
"crypto/sha256"
"fmt"
"io"
"log"
"os"
"path/filepath"
)
func findFiles() {
filepath.Walk("/", func(path string, info os.FileInfo, err error) error {
fmt.Println(path)
file, err := os.Open(path)
if err != nil {
log.Println(err)
return nil
}
defer file.Close()
hash := sha256.New()
if _, err := io.Copy(hash, file); err != nil {
log.Println(err)
return nil
}
fmt.Printf("%x\n", hash.Sum(nil))
return nil
})
}
func main() {
findFiles()
}