26 lines
479 B
Go
26 lines
479 B
Go
package api_security
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"math/rand"
|
|
)
|
|
|
|
func GenerateKey(secret string) []byte {
|
|
key := sha256.Sum256([]byte(secret))
|
|
return key[:]
|
|
}
|
|
|
|
func GenerateIV(secret, salt string) []byte {
|
|
return GenerateKey(secret + salt)[:16]
|
|
}
|
|
|
|
const strPool = "012345679qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM"
|
|
|
|
func GenerateIVSalt() string {
|
|
var n [16]byte
|
|
for i := 0; i < 16; i++ {
|
|
n[i] = byte(strPool[rand.Intn(len(strPool))])
|
|
}
|
|
return string(n[:])
|
|
}
|