Browse Source

Text2hash-Funktion hatte gefehlt

test
Klaus Wendel 3 years ago
parent
commit
be46a99e68
  1. 41
      crypta/crypta.go
  2. 28
      ebkTools.go

41
crypta/crypta.go

@ -0,0 +1,41 @@
package crypta
import (
"crypto/md5"
"crypto/sha256"
"crypto/sha512"
"ebkTools"
"fmt"
"hash"
)
type (
cryptaType string
)
const (
CRYPTA_MD5 cryptaType = "md5"
CRYPTA_SHA256 cryptaType = "sha256"
CRYPTA_SHA512 cryptaType = "sha512"
)
//Text2hash wandelt einen String in einen Hash um
func Text2hash(s string, enc cryptaType) (h string) {
var myHash hash.Hash
switch enc {
default: // md5 is default
myHash = md5.New()
case CRYPTA_MD5:
myHash = md5.New()
case CRYPTA_SHA256:
myHash = sha256.New()
case CRYPTA_SHA512:
myHash = sha512.New()
}
_, err := myHash.Write([]byte(s))
ebkTools.Check(err)
//
return fmt.Sprintf("%x", myHash.Sum(nil)) //string(myHash.Sum(nil))
}

28
ebkTools.go

@ -42,9 +42,9 @@ type Concatablestring string
//String2args macht aus einem String ein Array, trennt am Trennzeichen, berücksichtigt aber mit einfachen und doppelten Anführungszeichen eingegrenzte Bereiche
func String2args(s string) (ss []string) {
s = regexp.MustCompile(`([\s\p{Zs}]{1,})|('[^']*')|(\"[^\"]*\")`).ReplaceAllString(s, "${0}💇") // Leerzeichen innerhalb von Anführungszeichen sollen nicht ersetzt werden!
s = regexp.MustCompile(`[\s\p{Zs}💇]{1,}💇`).ReplaceAllString(s, "💇") // Entferne alle Leerzeichen VOR dem 💇; auch doppelte 💇 sollen verschwinden.
s = regexp.MustCompile(`[\s\p{Zs}💇]{1,}💇`).ReplaceAllString(s, "💇") // Entferne alle Leerzeichen VOR dem 💇; auch doppelte 💇 sollen verschwinden.
s = strings.Trim(s, "💇")
ss = strings.Split(s, "💇") // Bereinige die Stringränder, insbesondere das Ende
ss = strings.Split(s, "💇") // Bereinige die Stringränder, insbesondere das Ende
for i := 0; i < len(ss); i++ { // Entferne die Anführungszeichen
ss[i] = strings.Trim(ss[i], `"'`)
//fmt.Println(ss[i])
@ -129,3 +129,27 @@ func InArray(array interface{}, value interface{}) (exists bool, index int) {
return
}
// Check error code
func Check(e error) {
if e != nil {
panic(e)
}
}
// Difference of two []string-Slices
// Set Difference: A - B
func StringsDiff(a, b []string) (diff []string) {
m := make(map[string]bool)
for _, item := range b {
m[item] = true
}
for _, item := range a {
if _, ok := m[item]; !ok {
diff = append(diff, item)
}
}
return
}

Loading…
Cancel
Save