38 lines
1.4 KiB
Swift
38 lines
1.4 KiB
Swift
import Foundation
|
|
import CryptoKit
|
|
|
|
extension String {
|
|
func hexdata() -> Data {
|
|
Data(stride(from: 0, to: count, by: 2).map {
|
|
let a = index(startIndex, offsetBy: $0)
|
|
let b = index(after: a)
|
|
return UInt8(self[a ... b], radix: 16)!
|
|
})
|
|
}
|
|
}
|
|
|
|
DispatchQueue.concurrentPerform(iterations: 26) { (a) in
|
|
let goal1 = "1115dd800feaacefdf481f1f9070374a2a81e27880f187396db67958b207cbad".hexdata()
|
|
let goal2 = "3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b".hexdata()
|
|
let goal3 = "74e1bb62f8dabb8125a58852b63bdf6eaef667cb56ac7f7cdba6d7305c50a22f".hexdata()
|
|
var letters: [UInt8] = [(UInt8)(a + 97), 0, 0, 0, 0]
|
|
for b: UInt8 in 97...122 {
|
|
letters[1] = b
|
|
for c: UInt8 in 97...122 {
|
|
letters[2] = c
|
|
for d: UInt8 in 97...122 {
|
|
letters[3] = d
|
|
for e: UInt8 in 97...122 {
|
|
letters[4] = e
|
|
let digest = SHA256.hash(data: letters)
|
|
if digest == goal1 || digest == goal2 || digest == goal3 {
|
|
let password = String(bytes: letters, encoding: .ascii)!
|
|
let hexhash = digest.map { String(format: "%02x", $0) }.joined()
|
|
print("\(password) => \(hexhash)")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|