V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zy445566  ›  全部回复第 35 页 / 共 41 页
回复总数  813
1 ... 27  28  29  30  31  32  33  34  35  36 ... 41  
2019-05-31 09:58:10 +08:00
回复了 zy445566 创建的主题 Node.js Bitcoin 公私钥是如何生成的
@leishi1313
算了不知者无谓,给你讲一讲。
## 第一源码里的逻辑也不复杂,甚至和比我的还弱。
首先在 src/bitcoin-wallet.cpp 里面执行 main 函数里的 RandomInit 方法执行初始化钱包随机。在 src/random.cpp 的 RandomInit 方法里默认执行 SeedFast 来生成原值。
```cpp
static void SeedFast(CSHA512& hasher) noexcept
{
unsigned char buffer[32];
const unsigned char* ptr = buffer;
hasher.Write((const unsigned char*)&ptr, sizeof(ptr));
SeedHardwareFast(hasher);

SeedTimestamp(hasher);
}
```
在这个方法里就两个第一是随机生成原值再加个时间戳。加时间戳就不看了,看生成随机数。
```cpp
static void SeedHardwareFast(CSHA512& hasher) noexcept {
if (g_rdrand_supported) {
uint64_t out = GetRdRand();
hasher.Write((const unsigned char*)&out, sizeof(out));
return;
}
}
static uint64_t GetRdRand() noexcept
{
uint8_t ok;
uint64_t r1;
for (int i = 0; i < 10; ++i) {
__asm__ volatile (".byte 0x48, 0x0f, 0xc7, 0xf0; setc %1" : "=a"(r1), "=q"(ok) :: "cc"); // rdrand %rax
if (ok) break;
}
return r1;
}
```
这里我们只看比较新的架构生成,你可以看到这里直接调用了汇编的随机生成指令来生成。

所以说官方就俩点
* 用硬件生成了个随机码
* 再加个时间戳

就这样就给你了,`还真不如我的进行每位随机安全`。

## 第二黑客破解方法并不是通过私钥原值碰撞
黑客拿到的是地址,所以
* 首先要碰撞地址的 ripemd16 的值
* 再通过 ripemd16 去碰撞一个 sha256 的值
* 最后用 sha256 的值去反向减椭圆加密运算

再所以,从头到尾跟私钥原值没关系,懂么?`只要私钥原值位数够长就行`。这就是我一直说私钥原值没关系的原因。
2019-05-30 13:53:36 +08:00
回复了 zy445566 创建的主题 Node.js Bitcoin 公私钥是如何生成的
@leishi1313
我没有动气,是真的你可以自己写个私钥原值就好。64 位十六进制数在[1,n]范围内就好,我这里可以帮你加载成真正可以用的私钥。getPrivteOriginKeyByStr 和 getPrivteOriginKeyByRand 是完全可以不使用的,也是最没有技术的方法。

至于 random()并不是对整串随机,而是对原值的十六进制数的每一位进行随机。也就是说 random()几乎是在随机 0 到 15.随机 64 次,而不是做一次随机就出串。这是有很大差别的,同时 node 是读取 /dev/urandom 来实现随机,并不是你想的读库随机,这点也是有很大的不同。

一个私钥都是由私钥的原值产生,所以和硬件钱包没关系,我随机生成私钥原值就是故意不看 bitcoin-core 源码来实现,因为就是当心有人直接使用 bitcoin-core 源码来实现碰撞私钥,包括私钥通过私钥原值生成和公钥生成都参考了一定 bitcoin-core 源码来实现。

你可能还不是很明白什么是私钥原值,所以你才会纠结随机问题,而这个原值是可以完全自己写一个自己喜欢的。
2019-05-30 08:42:40 +08:00
回复了 zy445566 创建的主题 Node.js Bitcoin 公私钥是如何生成的
你要觉得安全,自己写个私钥原值就好。我这里可以根据原值生成私钥和地址。
2019-05-30 08:41:28 +08:00
回复了 zy445566 创建的主题 Node.js Bitcoin 公私钥是如何生成的
@leishi1313 呵呵,只是个大数选择,你自己也可以随便写一个私钥原值。硬件钱包也是要根据私钥原值。这点无区别。
我这边的安全是指无第三方 npm 依赖,代码简单一览无遗,不可能存在埋盗笔代码。
2019-05-29 16:23:55 +08:00
回复了 aker1986 创建的主题 问与答 有人吃过褪黑素吗?我吃了竟然不管用,一点都没有犯困阿.
敖东安神补脑液,我喝完第六盒就好多了。还有睡觉前不要玩手机
2019-05-29 16:22:20 +08:00
回复了 moodasmood 创建的主题 程序员 老是忘记带工牌,有啥办法不?
我的工牌直接放公司,到公司就带上,平时要进就等会人
2019-05-28 13:45:28 +08:00
回复了 witkeysu 创建的主题 职场话题 原来有那么多人不了解社保和公积金,我想简单说一说
支持!感谢科普
2019-05-28 13:43:20 +08:00
回复了 IWSR 创建的主题 求职 杭州有啥技术氛围比较好的公司呀
有赞不也是 enjoy 的 996 文化
2019-05-22 17:56:36 +08:00
回复了 zy445566 创建的主题 职场话题 从事前端几个月,感觉几年的后端经验要废了,怎么办。
@xinzhognyi 神了,我最近几个月真的有点颈椎疼
2019-05-21 16:36:41 +08:00
回复了 zy445566 创建的主题 职场话题 从事前端几个月,感觉几年的后端经验要废了,怎么办。
@charlie21
牛逼,膜拜
2019-05-21 09:40:51 +08:00
回复了 zy445566 创建的主题 职场话题 从事前端几个月,感觉几年的后端经验要废了,怎么办。
@fedfrank
是这样的。。。
2019-05-21 09:23:32 +08:00
回复了 zy445566 创建的主题 职场话题 从事前端几个月,感觉几年的后端经验要废了,怎么办。
@impl
@Accat1024
@qq1009479218
@blessyou
@mistkafka
@findmyself
@Salvation
@JmmBite
@vcinex
@cdwyd
@kuyuzhiqi
@snappyone
@wc951
@looking0truth
@fhsan
@zhixuanziben
@zhixuanziben
@otato
@Biwood
@mogutouer
@gouflv
@KuroNekoFan
@sama666
@sugars
@k9982874
添加附言批量回复,感谢大家的回复,我是真的慌,不是开玩笑。。。
2019-05-18 19:22:27 +08:00
回复了 yagao0o 创建的主题 问与答 拇指根部虎口那个部位酸痛是什么问题?
我之前玩王者和吃鸡也造成了这个原因,弹响指。
这个很难好,要保养三个月,搞不好会终身。
2019-05-17 12:52:12 +08:00
回复了 Aliennnnnn 创建的主题 Bitcoin BTC 暴跌 9%,要不要抄底
上面是我胡编的,请不要相信,盈亏自负!
2019-05-17 12:51:22 +08:00
回复了 Aliennnnnn 创建的主题 Bitcoin BTC 暴跌 9%,要不要抄底
呵呵,这么跟你说吧,这波行情明显是想把获利盘震下车,不出意外等等还有一次大跌,你可以先挂个价。
动动脑子,如果我是主力,我现在肯定不跑,就算跑,我也要拉一个假突破,骗你们上车再走,持有的放心拿,等两周的 1W 点再说吧。
2019-05-17 11:51:38 +08:00
回复了 woshishuia 创建的主题 问与答 如何通过左转和直行同时绿灯的路口?
@woshishuia 不是,只是觉得你昨天发的贴很适合用你今天在这个问题的描述来回答。
2019-05-17 11:29:04 +08:00
回复了 woshishuia 创建的主题 问与答 如何通过左转和直行同时绿灯的路口?
等,可能永远上不了车;
买,可能会发生套牢危险。
2019-05-16 11:51:36 +08:00
回复了 zyxs 创建的主题 求职 [杭州] 求一份不加班的工作(前端)
奋斗逼之都:我们只需要能 996 和 669 的人
1 ... 27  28  29  30  31  32  33  34  35  36 ... 41  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1087 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 22:48 · PVG 06:48 · LAX 14:48 · JFK 17:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.