private-key-recovery
Version:
Private key recovery script to brute-force broken private keys in WIF.
29 lines (27 loc) • 938 B
text/typescript
const base58 = require('bs58')
const crypto = require('crypto')
export function encode(enc: number): string {
var alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'
var base = alphabet.length
if (typeof enc !== 'number') { throw Error('"encode" only accepts integers.') }
var encoded = ''
while (enc) {
var remainder = enc % base
enc = Math.floor(enc / base)
encoded = alphabet[remainder].toString() + encoded
}
return encoded
}
export function base58check(input: string): boolean {
var buffer = Buffer.from(base58.decode(input))
var prefix = buffer.slice(0, 1)
var data = buffer.slice(1, -4)
var hash = Buffer.concat([prefix, data])
hash = crypto.createHash('sha256').update(hash).digest()
hash = crypto.createHash('sha256').update(hash).digest()
if (!buffer.slice(-4).equals(hash.slice(0, 4))) {
return false
} else {
return true
}
}