4

我正在寻找一个将验证 58 比特币私钥的正则表达式。我为公共地址找到了这个:

/^[13n][1-9A-Za-z][^OIl]{20,40}/

但我不知道私钥的要求是什么。

4

4 回答 4

11
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

于 2015-10-11T00:28:43.037 回答
4

^5[HJK][0-9A-Za-z&&[^0OIl]]{49}

于 2014-10-25T08:10:27.730 回答
3

/^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'.

于 2013-05-24T15:01:13.993 回答
1

在蟒蛇中:

import re
re.search("^5[HJK][1-9A-Za-z][^OIl]{48}$", wif)
于 2014-03-05T03:32:09.290 回答