mirror of
https://github.com/eiblog/eiblog.git
synced 2026-02-09 16:12:26 +08:00
72 lines
1.3 KiB
Go
72 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"crypto/sha1"
|
|
"crypto/sha256"
|
|
"fmt"
|
|
"io"
|
|
"io/ioutil"
|
|
"path"
|
|
"regexp"
|
|
)
|
|
|
|
const (
|
|
SUCCESS = iota
|
|
FAIL
|
|
)
|
|
|
|
// encrypt password
|
|
func EncryptPasswd(name, pass string) string {
|
|
salt := "%$@w*)("
|
|
h := sha256.New()
|
|
io.WriteString(h, name)
|
|
io.WriteString(h, salt)
|
|
io.WriteString(h, pass)
|
|
return fmt.Sprintf("%x", h.Sum(nil))
|
|
}
|
|
|
|
func VerifyPasswd(origin, name, input string) bool {
|
|
return origin == EncryptPasswd(name, input)
|
|
}
|
|
|
|
func SHA1(data []byte) [sha1.Size]byte {
|
|
return sha1.Sum(data)
|
|
}
|
|
|
|
func ReadDir(dir string, filter func(name string) bool) (files []string) {
|
|
fis, err := ioutil.ReadDir(dir)
|
|
if err != nil {
|
|
return
|
|
}
|
|
for _, fi := range fis {
|
|
if filter(fi.Name()) {
|
|
continue
|
|
}
|
|
if fi.IsDir() {
|
|
files = append(files, ReadDir(path.Join(dir, fi.Name()), filter)...)
|
|
continue
|
|
}
|
|
files = append(files, path.Join(dir, fi.Name()))
|
|
}
|
|
return
|
|
}
|
|
|
|
func IgnoreHtmlTag(src string) string {
|
|
//去除所有尖括号内的HTML代码
|
|
re, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
|
|
src = re.ReplaceAllString(src, "")
|
|
|
|
//去除换行符
|
|
re, _ = regexp.Compile("\\s{1,}")
|
|
return re.ReplaceAllString(src, "")
|
|
}
|
|
|
|
func PickFirstImage(html string) string {
|
|
re, _ := regexp.Compile(`data-src="(.*?)"`)
|
|
sli := re.FindAllStringSubmatch(html, 1)
|
|
if len(sli) > 0 && len(sli[0]) > 1 {
|
|
return sli[0][1]
|
|
}
|
|
return ""
|
|
}
|