- 1.前言
- 2.为什么是区块链编程而不是比特币编程?
- 3.为什么是 C#?
- 4.预备条件
- 5.本书众筹
- 6.补充阅读
- 7.图标
- 8.许可: CC (ASA 3U)
- 9.项目设置
- 1.比特币地址
- 2.交易
- 3.区块链
- 4. 区块链不仅仅是比特币
- 5.支付比特币
- 6.作为真实性验证方法的所有权证明
- 1.足够随机了吗?
- 2.秘钥加密
- 3.秘钥的生成
- 1.P2PK[H] (向公钥付款 [Hash])
- 2.多重签名
- 3.P2SH ( 向脚本哈希付款)
- 4.灵活机动性
- 5.使用 TransactionBuilder
- 1.颜色币
- 2.发行一项资产
- 3.传输资产
- 4.单元测试
- 5.李嘉图合约
- 6.流动的民主
- 7.烧钱和声誉证明
- 8.存在性证明
- 1.比特币发展的挑战
- 2.如何证明一个币存在于区块链上
- 3.如何证明一个颜色币存在于区块链上
- 4.断开与第三方 API 的信任关系
- 5.防止延展性攻击
- 6.保护你的私钥
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2.秘钥加密
在上一节中,我快速过了一下一个特殊的 KDF,名叫 Scrypt。按我说,KDF 的目标就是让暴力破解代价昂贵。
所以,你就不会奇怪,现在已经有一个标准,通过一个 KDF 使用密码对你的私钥进行加密。它就是 BIP38。
var key = new Key();
BitcoinSecret wif = key.GetBitcoinSecret(Network.Main);
Console.WriteLine(wif);
BitcoinEncryptedSecret encrypted = wif.Encrypt("secret");
Console.WriteLine(encrypted);
wif = encrypted.GetSecret("secret");
Console.WriteLine(wif);
这种加密在两种情况下使用:
- 你不信任存储提供商(他们可能受到攻击)
- 你为别人存储秘钥(你不想知道他的秘钥)
如果你的服务器负责秘钥解密,请一定小心,黑客可能使用 DDOS 攻击你的服务器,迫使它解密出很多秘钥。
如果可能的话,让最终用户来解密。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论