我正在寻找一个将验证 58 比特币私钥的正则表达式。我为公共地址找到了这个:
/^[13n][1-9A-Za-z][^OIl]{20,40}/
但我不知道私钥的要求是什么。
var regex = /^[5KL][1-9A-HJ-NP-Za-km-z]{50,51}$/
在 JavaScript 中。
所有有效的 WIF 私钥都将与此匹配,并且唯一将匹配的额外内容是带有无效校验和的“WIF 私钥”-ish 字符串。
最短的 WIF 密钥(全 00 字节,缺少压缩的 01 字节) 51 长度 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU
可能的最长 WIF 密钥(所有 ff 字节以及额外的 01 压缩字节) 52 长度 L5oLkpV3aqBjhki6LmvChTCq73v9gyymzzMpBbhDLjDpKCuAXpsi
^5[HJK][0-9A-Za-z&&[^0OIl]]{49}
/^5[HJK][1-9A-Za-z][^OIl]{49}/
From https://en.bitcoin.it/wiki/Base58Check_encoding:
Such encodings will always yield a 51-character string that starts with '5', or more specifically, either '5H', '5J', or '5K'.
在蟒蛇中:
import re
re.search("^5[HJK][1-9A-Za-z][^OIl]{48}$", wif)