mirror of https://github.com/grafana/grafana
parent
44f5b92fbc
commit
c817aecd66
@ -0,0 +1,26 @@ |
||||
package util |
||||
|
||||
import ( |
||||
"crypto/md5" |
||||
"encoding/hex" |
||||
"io" |
||||
"strings" |
||||
) |
||||
|
||||
// Md5Sum calculates the md5sum of a stream
|
||||
func Md5Sum(reader io.Reader) (string, error) { |
||||
var returnMD5String string |
||||
hash := md5.New() |
||||
if _, err := io.Copy(hash, reader); err != nil { |
||||
return returnMD5String, err |
||||
} |
||||
hashInBytes := hash.Sum(nil)[:16] |
||||
returnMD5String = hex.EncodeToString(hashInBytes) |
||||
return returnMD5String, nil |
||||
} |
||||
|
||||
// Md5Sum calculates the md5sum of a string
|
||||
func Md5SumString(input string) (string, error) { |
||||
buffer := strings.NewReader(input) |
||||
return Md5Sum(buffer) |
||||
} |
||||
@ -0,0 +1,17 @@ |
||||
package util |
||||
|
||||
import "testing" |
||||
|
||||
func TestMd5Sum(t *testing.T) { |
||||
input := "dont hash passwords with md5" |
||||
|
||||
have, err := Md5SumString(input) |
||||
if err != nil { |
||||
t.Fatal("expected err to be nil") |
||||
} |
||||
|
||||
want := "2d6a56c82d09d374643b926d3417afba" |
||||
if have != want { |
||||
t.Fatalf("expected: %s got: %s", want, have) |
||||
} |
||||
} |
||||
Loading…
Reference in new issue