-
Notifications
You must be signed in to change notification settings - Fork 0
/
fnv.go
145 lines (111 loc) · 2.58 KB
/
fnv.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package hash
import (
"strconv"
"hash/fnv"
"encoding/hex"
)
// Fnv32
func Fnv32(data string) string {
m := fnv.New32()
m.Write([]byte(data))
res := m.Sum32()
return strconv.FormatInt(int64(res), 16)
}
// Fnv32
func (this Hash) Fnv32() Hash {
return this.FuncHash(func(data ...[]byte) (string, error) {
newData := ""
for _, v := range data {
newData += string(v)
}
return Fnv32(newData), nil
})
}
// =======================
// Fnv32a
func Fnv32a(data string) string {
m := fnv.New32a()
m.Write([]byte(data))
res := m.Sum32()
return strconv.FormatInt(int64(res), 16)
}
// Fnv32a
func (this Hash) Fnv32a() Hash {
return this.FuncHash(func(data ...[]byte) (string, error) {
newData := ""
for _, v := range data {
newData += string(v)
}
return Fnv32a(newData), nil
})
}
// =======================
// Fnv64
func Fnv64(data string) string {
m := fnv.New64()
m.Write([]byte(data))
res := m.Sum64()
return strconv.FormatInt(int64(res), 16)
}
// Fnv64
func (this Hash) Fnv64() Hash {
return this.FuncHash(func(data ...[]byte) (string, error) {
newData := ""
for _, v := range data {
newData += string(v)
}
return Fnv64(newData), nil
})
}
// =======================
// Fnv64a
func Fnv64a(data string) string {
m := fnv.New64a()
m.Write([]byte(data))
res := m.Sum64()
return strconv.FormatInt(int64(res), 16)
}
// Fnv64a
func (this Hash) Fnv64a() Hash {
return this.FuncHash(func(data ...[]byte) (string, error) {
newData := ""
for _, v := range data {
newData += string(v)
}
return Fnv64a(newData), nil
})
}
// =======================
// Fnv128
func Fnv128(data string) string {
m := fnv.New128()
m.Write([]byte(data))
return hex.EncodeToString(m.Sum(nil))
}
// Fnv128
func (this Hash) Fnv128() Hash {
return this.FuncHash(func(data ...[]byte) (string, error) {
newData := ""
for _, v := range data {
newData += string(v)
}
return Fnv128(newData), nil
})
}
// =======================
// Fnv128a
func Fnv128a(data string) string {
m := fnv.New128a()
m.Write([]byte(data))
return hex.EncodeToString(m.Sum(nil))
}
// Fnv128a
func (this Hash) Fnv128a() Hash {
return this.FuncHash(func(data ...[]byte) (string, error) {
newData := ""
for _, v := range data {
newData += string(v)
}
return Fnv128a(newData), nil
})
}