first commit

This commit is contained in:
2021-11-02 11:25:21 +01:00
commit 0c861770a8
2162 changed files with 178285 additions and 0 deletions

79
tool/encrypt.go Normal file
View File

@ -0,0 +1,79 @@
package tool
import (
"crypto/aes"
"crypto/cipher"
"crypto/rand"
"encoding/base64"
"fmt"
"io"
"unicode"
)
func Encrypt(key []byte, text string) string {
plaintext := []byte(text)
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
ciphertext := make([]byte, aes.BlockSize+len(plaintext))
iv := ciphertext[:aes.BlockSize]
if _, err := io.ReadFull(rand.Reader, iv); err != nil {
panic(err)
}
stream := cipher.NewCFBEncrypter(block, iv)
stream.XORKeyStream(ciphertext[aes.BlockSize:], plaintext)
return base64.URLEncoding.EncodeToString(ciphertext)
}
func Decrypt(key []byte, cryptoText string) string {
ciphertext, _ := base64.URLEncoding.DecodeString(cryptoText)
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
if len(ciphertext) < aes.BlockSize {
panic("ciphertext too short")
}
iv := ciphertext[:aes.BlockSize]
ciphertext = ciphertext[aes.BlockSize:]
stream := cipher.NewCFBDecrypter(block, iv)
stream.XORKeyStream(ciphertext, ciphertext)
return fmt.Sprintf("%s", ciphertext)
}
func IsPasswordValid(s string) bool {
var (
hasMinLen = false
hasUpper = false
hasLower = false
hasNumber = false
hasSpecial = false
)
if len(s) >= 7 {
hasMinLen = true
}
for _, char := range s {
switch {
case unicode.IsUpper(char):
hasUpper = true
case unicode.IsLower(char):
hasLower = true
case unicode.IsNumber(char):
hasNumber = true
case unicode.IsPunct(char) || unicode.IsSymbol(char):
hasSpecial = true
}
}
return hasMinLen && hasUpper && hasLower && hasNumber && hasSpecial
}

72
tool/log.go Normal file
View File

@ -0,0 +1,72 @@
package tool
import (
"fmt"
)
var (
Black = Color("\033[1;30m%s\033[0m")
Red = Color("\033[1;31m%s\033[0m")
Green = Color("\033[1;32m%s\033[0m")
Yellow = Color("\033[1;33m%s\033[0m")
Purple = Color("\033[1;34m%s\033[0m")
Magenta = Color("\033[1;35m%s\033[0m")
Teal = Color("\033[1;36m%s\033[0m")
White = Color("\033[1;37m%s\033[0m")
)
func Log(v string) {
fmt.Println(v)
}
func LogInfo(v string) {
fmt.Println(Teal(v))
}
func LogFatal(v string) {
fmt.Println(Red(LogLine("*")))
fmt.Println(Red(v))
fmt.Println(Red(LogLine("*")))
}
func LogLine(car string) string {
v := ""
for i := len(v); len(v) < 100; i++ {
v = v + car
}
return v
}
func LogJobTitle(v string) {
v = "== CMD = " + v + " "
for i := len(v); len(v) < 100; i++ {
v = v + "="
}
fmt.Println("")
fmt.Println("")
fmt.Println(Magenta(LogLine("=")))
fmt.Println(Magenta(v))
fmt.Println(Magenta(LogLine("=")))
}
func LogTitle(v string) {
v = "== " + v + " "
for i := len(v); len(v) < 100; i++ {
v = v + "="
}
fmt.Println("")
fmt.Println("")
fmt.Println(Green(LogLine("=")))
fmt.Println(Green(v))
fmt.Println(Green(LogLine("=")))
}
func Color(colorString string) func(...interface{}) string {
sprint := func(args ...interface{}) string {
return fmt.Sprintf(colorString, fmt.Sprint(args...))
}
return sprint
}

59
tool/session.go Normal file
View File

@ -0,0 +1,59 @@
package tool
import (
"github.com/martini-contrib/sessions"
)
func Rendersession(session sessions.Session) map[string]string {
rendersession := make(map[string]string)
rendersession["Userid"] = ""
tmp := session.Get("Userid")
if tmp != nil {
rendersession["Userid"] = tmp.(string)
}
rendersession["Login"] = ""
tmp = session.Get("Login")
if tmp != nil {
rendersession["Login"] = tmp.(string)
}
rendersession["Firstname"] = ""
tmp = session.Get("Firstname")
if tmp != nil {
rendersession["Firstname"] = tmp.(string)
}
rendersession["Lastname"] = ""
tmp = session.Get("Lastname")
if tmp != nil {
rendersession["Lastname"] = tmp.(string)
}
rendersession["Email"] = ""
tmp = session.Get("Email")
if tmp != nil {
rendersession["Email"] = tmp.(string)
}
rendersession["Avatar"] = ""
tmp = session.Get("Avatar")
if tmp != nil {
rendersession["Avatar"] = tmp.(string)
}
rendersession["Role"] = ""
tmp = session.Get("Role")
if tmp != nil {
rendersession["Role"] = tmp.(string)
}
rendersession["Apikey"] = ""
tmp = session.Get("Apikey")
if tmp != nil {
rendersession["Apikey"] = tmp.(string)
}
return rendersession
}