主页 > imtoken下载钱包 > 巴氏合金柱 | 5分钟教你比特币私钥生成和存储的“银行级”方法
巴氏合金柱 | 5分钟教你比特币私钥生成和存储的“银行级”方法
#导入工具包
随机导入
导入字符串
进口比特币
# 这里需要一口气设置好几个私钥
iter_num=3
#随机数生成函数————
#生成一个由0和1组成的n位字符串,这里n设置为256,比如01010100111...(共256位)
DeFirandom_01(n):
结果=[]
foriinrange(n):
我=随机.randint(0,1)
结果.append(i)
result_txt=[str(i)foriinresult]
返回''.join(result_txt)
#随机数处理函数——让随机之外还有随机
#您可以手动更改此步骤
DeFidep_k_2(k_2):
k_2=k_2[:254]+str(random.randint(0,1))+str(random.randint(0,1))
返回_2
#私钥集生成函数
# 转换路径:
#1。 处理后的256位二进制随机数k_2
#-gt;2,十进制数k_10等于k_2
#-gt;3、私钥k-gt;4、公钥K-gt;5、地址A-gt;6、加密私钥kk(用于展示)
DeFiprod_key(iter_num):
foriinrange(iter_num):
# 生成一个1-50之间的整数,用于后续加密
random_int=random.randint(1,50)
#生成256位0和1的二进制串
k_2=随机_01(256)
#进一步处理上行代码生成的字符串,使随机更随机
k_2=dep_k_2(k_2)
#生成可公开打印的私钥随机字母r
#r的取值范围为26个大小写英文字母和10个阿拉伯数字
r=random.sample(string.ascii_letters+string.digits,1)
iflen(str(k_2))==256:#检查字符是否为256位
k_10=int('0b'+str(k_2),2)#二进制数k_2转换为十进制数k_10
k=bitcoin.encode_privkey(k_10,'wif_compressed')#生成私钥k
K=bitcoin.privkey_to_pubkey(k)#生成公钥K
A=bitcoin.pubkey_to_address(K)#生成地址A
#生成打印私钥kk
kk=k[0:random_int]+r[0]+k[random_int+1:52]+k[random_int]
#生成可打印文本txt
txt="序列号:{}/n显示私钥:{}/n地址:{}/n".format(random_int,kk,A)
别的:
print('Not256bits')#如果不是256位,打印错误信息
# 生成打印文件,第二个参数'a'代表append
txt_file=open('key.txt','a')
#打印到文件key.txt
打印(txt,文件= txt_file)
# 关闭文件
txt_文件。 关闭()
#需要对整个文件执行的函数
if__name__=='__main__':
prod_key(iter_num)
具体点在代码中有注释,有Python经验的读者可以DIY自己的代码。 比如随机数处理函数(dep_k_2)可以稍微修改一下,改变属于你的随机数,比如:
DeFidep_k_2(k_2):
k_2=k_2[:253]/
+str(随机.randint(0,1))/
+str(随机.randint(0,1))/
+str(随机.randint(0,1))
返回_2
这段代码的意思是:把原来自动生成的随机数的后三位截掉后(只选前253位,这也是k_2[:253]的由来),然后加上三个随机数,使随机数更随机。 当然,这不是绝对的真随机,但对于离线加密私钥生成场景来说绝对足够了。
建议有能力的读者自行DIY dep_k_2()函数,否则看这篇文章的黑客,如果了解Python中随机数的具体生成,会略微增加猜测的概率。
因为Python中随机数生成的逻辑是将相关矩作为种子。 进一步的DIY方法也可以参考上一篇文章。
当你成功十次将私钥导入钱包并备份一定数量的私钥文件后,你甚至可以直接将交易所的币转入相应地址存储,完全脱离钱包和网络环境.
当你管理区块链资产时,你要把自己当成银行,因为这个世界上没有银行,只有你。
关于不起眼的打印机的小提示,可以帮助您更接近银行级专业水平。
3.清理打印机缓存文件
打印机打印完私钥文件后,打印的内容可能不会立即消失,而是会保存在缓存中。 如果此时连接到互联网,仍然存在文件泄露的风险。 虽然我们已经过了加密环,但是在私钥的保护上也不能放松。
如果可以删除。
以Window系统为例:Win+R,即“开始”-gt; 左下角“运行”,输入:
服务.msc
在服务列表中找到Print Spooler的服务项比特币放一万个地址碰撞私钥比特币放一万个地址碰撞私钥,右击-gt; “停止”。
同样,Win+R调出运行窗口,输入:
线轴
在出现的窗口中,删除 PRINTERS 文件夹
返回服务列表,右击Print Spooler,点击“开始”。
打印机缓存问题解决,上网更安全。
结语
如果您决定在佛系持币,私钥的安全是第一要务。
此时此刻,比特币价格突破51000美元,而这仅仅是个开始。 随着币价进一步波动,更科学的管理方式是去中心化到更多地址,避免尾部风险。
如果持有量足够,可以在代码中增加iter_num的值,如:
iter_num=10
将十除以一以进一步稀释风险。
当然,这时候你需要权衡每笔转账的矿工费,大约是万分之五的币——不仅是拆分的时候一次,转账到交易所出售的时候也是。 然而,与长期收益相比,这些成本已经足够小了。
另外,打印出来的私钥纸的份数,放在哪里才不会被烧掉或者被水淹,都是值得大家认真考虑的问题。 这个问题对大家来说很重要,但不一定能引起大家足够的重视。 因为你DIY的加密功能,多打几份问题不大,只要把加密方法记在心里就行。