diff --git a/security/sha512.go b/security/sha512.go new file mode 100644 index 00000000..fffcf1b8 --- /dev/null +++ b/security/sha512.go @@ -0,0 +1,12 @@ +package security + +import ( + "crypto/sha512" + "fmt" +) + +func Sha512(s string) string { + hash := sha512.New() + hash.Write([]byte(s)) + return fmt.Sprintf("%x", hash.Sum(nil)) +} diff --git a/security/sha512_test.go b/security/sha512_test.go new file mode 100644 index 00000000..23e0f8d4 --- /dev/null +++ b/security/sha512_test.go @@ -0,0 +1,12 @@ +package security + +import "testing" + +func TestSha512(t *testing.T) { + input := "password" + expectedHash := "b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86" + hash := Sha512(input) + if hash != expectedHash { + t.Errorf("Expected hash to be '%s', but was '%s'", expectedHash, hash) + } +}