
Get an sha256 hash (fingerprint) from an input file using the
crypto/sha256
standard package.
I also added a flag to read in your .ssh/id_rsa.pub key to get your ssh fingerprint.
tl;dr
# INSTALL VIA GO
go install sh256-hash-file.go
# GET SH256 FINGERPRINT ON FILE
sha256-hash-file testfile.txt
# GET SH256 FINGERPRINT ON KEY FILE
sha256-hash-file -ssh ~/.ssh/id_rsa.pub
Table of Contents
Documentation and Reference
OVERVIEW
In a nutshell, the guts of the code is,
plainTextBytes := []byte(plainText)
// HASH
sha256HashByte := sha256.Sum256(plainTextBytes)
// CONVERT TO STRING
sha256Hash := base64.RawStdEncoding.EncodeToString(sha256HashByte[:])
PREREQUISITES
You will need the following go packages,
go get -u -v github.com/sirupsen/logrus
RUN
To
run.sh,
go run . testfile.txt
go run sha256-hash-file.go testfile.txt
go run sha256-hash-file.go testfile.txt -loglevel trace
If you run on testfile.txt your sha256 hash shall be,
r2pN5Sjq43jggvxvW34cT6s662//HfyemRss38ZA+vk
You may also use the -ssh flag to read in a public ssh key file,
go run . -ssh ~/.ssh/id_rsa.pub
go run sha256-hash-file.go -ssh ~/.ssh/id_rsa.pub
go run sha256-hash-file.go -ssh ~/.ssh/id_rsa.pub -loglevel trace
Its nice because you can check you have the right fingerprint at
github.com/settings/keys.
You can also run the unix command to check your sha256,
ssh-keygen -lf ~/.ssh/id_rsa.pub
TEST
To create _test files,
gotests -w -all sha256-hash-file.go
To
unit-tests.sh,
go test -cover ./... | tee test/test_coverage.txt
cat test/test_coverage.txt
INSTALL
Will place an executable in your go bin,
go install sha256-hash-file.go
USAGE
sha256-hash-file {-h|-v|-ssh} [FILENAME] -loglevel [level]
-h
Help,
sha256-hash-file -h
-v
Version,
sha256-hash-file -v
-ssh
Check your public ssh file,
sha256-hash-file -ssh ~/.ssh/id_rsa.pub
-loglevel string
Can use trace, info or error,
sha256-hash-file -ssh ~/.ssh/id_rsa.pub -loglevel trace