Skip to content

Commit 82d0cd7

Browse files
Added Several Modes, Fixed CPU Thread Defaults #4
1 parent cc61f02 commit 82d0cd7

File tree

3 files changed

+43
-14
lines changed

3 files changed

+43
-14
lines changed

go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ module hashgen
22

33
go 1.22.4
44

5-
require golang.org/x/crypto v0.26.0
5+
require golang.org/x/crypto v0.28.0
66

7-
require golang.org/x/sys v0.23.0 // indirect
7+
require golang.org/x/sys v0.26.0 // indirect

go.sum

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
2-
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
3-
golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
4-
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
1+
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
2+
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
3+
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
4+
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=

hashgen.go

+37-8
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,9 @@ v2023-11-04.1330-threaded;
5151
added reporting when encountering HEX decoding errors
5252
v2024-08-24.2000-threaded;
5353
added mode "morsecode" which follows ITU-R M.1677-1 standard
54-
v2024-11-01.1530-threaded;
55-
added thread flag "-t" to allow user to specity CPU threads, ex: -t 16
54+
v2024-11-01.1630-threaded;
55+
added thread flag "-t" to allow user to specity CPU threads, ex: -t 16 // fixed default to use max CPU threads
56+
added modes: sha2-224, sha2-384, sha2-512-224, sha2-512-256, keccak-256, keccak-512
5657
*/
5758

5859
func versionFunc() {
@@ -89,16 +90,20 @@ func helpFunc() {
8990
"plaintext \t 99999 \t (can be used to dehex wordlist)\n" +
9091
"ripemd-160 \t 6000\n" +
9192
"sha1 \t\t 100\n" +
92-
//"sha2-224 \t 1300\n" +
93-
//"sha2-384 \t 10800\n" +
93+
"sha2-224 \t 1300\n" +
94+
"sha2-384 \t 10800\n" +
9495
"sha2-256 \t 1400\n" +
9596
"sha2-512 \t 1700\n" +
96-
//"sha2-512-224\n" +
97-
//"sha2-512-256\n" +
97+
"sha2-512-224\n" +
98+
"sha2-512-256\n" +
9899
"sha3-224 \t 17300\n" +
99100
"sha3-256 \t 17400\n" +
100101
"sha3-384 \t 17500\n" +
101-
"sha3-512 \t 17600\n"
102+
"sha3-512 \t 17600\n" +
103+
//"keccak-224\t 17700\n" +
104+
"keccak-256\t 17800\n" +
105+
//"keccak-384\t 17900\n" +
106+
"keccak-512\t 18000\n"
102107
fmt.Fprintln(os.Stderr, str)
103108
os.Exit(0)
104109
}
@@ -222,12 +227,28 @@ func hashBytes(hashFunc string, data []byte) string {
222227
case "sha1", "100":
223228
h := sha1.Sum(data)
224229
return hex.EncodeToString(h[:])
230+
case "sha2-224", "sha2_224", "sha2224", "sha224", "1300":
231+
h := sha256.New224()
232+
h.Write(data)
233+
return hex.EncodeToString(h.Sum(nil))
225234
case "sha2-256", "sha2_256", "sha2256", "sha256", "1400":
226235
h := sha256.Sum256(data)
227236
return hex.EncodeToString(h[:])
237+
case "sha2-384", "sha384", "10800":
238+
h := sha512.New384()
239+
h.Write(data)
240+
return hex.EncodeToString(h.Sum(nil))
228241
case "sha2-512", "sha2_512", "sha2512", "sha512", "1700":
229242
h := sha512.Sum512(data)
230243
return hex.EncodeToString(h[:])
244+
case "sha2-512-224", "sha512_224", "sha512224":
245+
h := sha512.New512_224()
246+
h.Write(data)
247+
return hex.EncodeToString(h.Sum(nil))
248+
case "sha2-512-256", "sha512_256", "sha512256":
249+
h := sha512.New512_256()
250+
h.Write(data)
251+
return hex.EncodeToString(h.Sum(nil))
231252
case "ripemd-160", "ripemd_160", "ripemd160", "6000":
232253
h := ripemd160.New()
233254
h.Write(data)
@@ -248,6 +269,14 @@ func hashBytes(hashFunc string, data []byte) string {
248269
h := sha3.New512()
249270
h.Write(data)
250271
return hex.EncodeToString(h.Sum(nil))
272+
case "keccak-256", "keccak256", "17800":
273+
h := sha3.NewLegacyKeccak256()
274+
h.Write(data)
275+
return hex.EncodeToString(h.Sum(nil))
276+
case "keccak-512", "keccak512", "18000":
277+
h := sha3.NewLegacyKeccak512()
278+
h.Write(data)
279+
return hex.EncodeToString(h.Sum(nil))
251280
case "11500": // hashcat compatible crc32 mode
252281
const hcCRCPad = ":00000000"
253282
h := crc32.ChecksumIEEE(data)
@@ -479,7 +508,7 @@ func main() {
479508

480509
// thread sanity check (can't use <= 0 or > available CPU threads)
481510
if numThreads <= 0 {
482-
numThreads = 1
511+
numThreads = maxThreads
483512
} else if numThreads > maxThreads {
484513
numThreads = maxThreads
485514
}

0 commit comments

Comments
 (0)