目的:校验ltc的wif是否符合要求,是否符合要求
用到的工具包:pycoin
代码如下:
# -*- coding:utf-8 -*-
'''
@author: user
'''
import hashlib
from pycoin import ecdsa, encoding
from pycoin.networks import bitcoinish
from pycoin.key.Key import Key
import os, sys, logging
import codecs
reload(sys)
# sys.setdefaultencoding('utf8')
PY_GEN_PATH = "D:/data/priv".replace('/', os.sep)
logger = logging.getLogger('check-ltc')
LOG_FILE = 'check-ltc.log'
RECORD_NUM = 45
LOG_FORMATTER = '%(message)s'
digits58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
def config_logger():
logger.setLevel(logging.DEBUG)
if not os.path.exists(PY_GEN_PATH):
logger.info("文件夹不存在,已自行创建")
os.makedirs(PY_GEN_PATH, 777)
handler = logging.FileHandler(os.path.join(PY_GEN_PATH, LOG_FILE))
handler.setLevel(logging.DEBUG)
fmter = logging.Formatter(LOG_FORMATTER)
handler.setFormatter(fmter)
logger.addHandler(handler)
# 控制台打印
console = logging.StreamHandler()
console.setLevel(level=logging.DEBUG) # 设置为INFO级别
console.setFormatter(fmter)
logger.addHandler(console)
def check_ltc_pk(pre, post):
print("check ltc pk")
def multiplier(factor):
def multiplyByFactor(number):
factor_new = factor * 4
return number * factor_new
return multiplyByFactor
def double_def():
a = multiplier(3)
print(a(4))
print(a(6))
a = multiplier(2)
print(a(4))
print(a(6))
a = multiplier(6)(7)
print(a)
'''
输出:
48
72
32
48
168
'''
def dev_check_ltc_priv():
from pycoin.networks.registry import network_for_netcode
from pycoin.encoding import bytes32,b58
from pycoin.symbols.ltc import network
network = network_for_netcode("LTC")
priv_num=1
key = network.keys.private(secret_exponent=priv_num)
print(key.wif())
print(key.address())
print('=' * 50)
key = network.keys.private(secret_exponent=priv_num,is_compressed=False)
print(key.wif())
print(key.address())
#校验wif是否符合要求
test_='6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69Xq'
print(b58.is_hashed_base58_valid(test_))
test2_='T33ydQRKp4FCW5LCLLUB7deioUMoveiwekdwUwyfRDeGZm76aUjV'
print(b58.is_hashed_base58_valid(test2_))
test_='6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69XQ'
print(b58.is_hashed_base58_valid(test_))
#key1 = network.keys.private(secret_exponent=priv_num1,is_compressed=False)
'''
BASE58_ALPHABET = b'123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
BASE58_BASE = len(BASE58_ALPHABET)
BASE58_LOOKUP = dict((c, i) for i, c in enumerate(BASE58_ALPHABET))
print(BASE58_LOOKUP)
key = network.keys.private(secret_exponent=0)
print(key.wif())
print(key.sec())
print(key.address())
print(key.address(is_compressed=False))
'''
if __name__ == '__main__':
config_logger()
dev_check_ltc_priv()
# double_def()
主要就是这段:
test_='6u823ozcyt2rjPH8Z2ErsSXJB5PPQwK7VVTwwN4mxLBFrao69Xq'
print(b58.is_hashed_base58_valid(test_))
调用pycoin.encoding.b58.py中的is_hashed_base58_valid这个方法,如果是正确的wif,则返回True,否则返回False