123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package back
- import (
- "crypto/rand"
- "crypto/sha256"
- "encoding/base64"
- "encoding/hex"
- "time"
- )
- // GenerateBytes генерирует рандомный массив байтов из n элементов
- func GenerateBytes(n int) ([]byte, error) {
- b := make([]byte, n)
- _, err := rand.Read(b)
- if err != nil {
- return nil, err
- }
- return b, nil
- }
- // GenerateString генерирует рандомную строку из n символов
- func GenerateString(n int) (string, error) {
- b, err := GenerateBytes(n)
- return base64.URLEncoding.EncodeToString(b), err
- }
- // GenerateHash генерирует 256 битный хэш
- func GenerateHash(value string) (string, error) {
- str, err := GenerateString(16)
- if err != nil {
- return "", err
- }
- hash := sha256.New()
- _, err = hash.Write([]byte(time.Now().String() + str + value))
- if err != nil {
- return "", err
- }
- return hex.EncodeToString(hash.Sum(nil)), nil
- }
- func getDate(dbFormat string) string {
- if len(dbFormat) < 19 {
- if len(dbFormat) < 10 {
- return "?дата?"
- }
- return dbFormat[8:10] + month[dbFormat[5:7]] + dbFormat[0:4]
- }
- return (dbFormat[8:10] + month[dbFormat[5:7]] + dbFormat[0:4] + " " + dbFormat[11:19])
- }
|