V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zy445566  ›  全部回复第 36 页 / 共 43 页
回复总数  841
1 ... 28  29  30  31  32  33  34  35  36  37 ... 43  
2019-06-13 08:40:47 +08:00
回复了 taishanwuji 创建的主题 杭州 我准备去杭州接盘了
社保淘宝补交不就好了
2019-06-12 22:12:03 +08:00
回复了 kppwp 创建的主题 杭州 请问杭州个推的工作环境?
@xiaohantx 有,但是简历要有其他亮点。
2019-06-12 22:09:20 +08:00
回复了 kppwp 创建的主题 杭州 请问杭州个推的工作环境?
@hcy1996 不太方便,因为刚刚离职
2019-06-12 18:01:50 +08:00
回复了 kppwp 创建的主题 杭州 请问杭州个推的工作环境?
看你是什么岗位,如果是大数据部门就是 macbook,如果是普通前后端开发就是 mac mini。
2019-06-10 18:02:46 +08:00
回复了 nebula0929 创建的主题 职场话题 深感自己视野狭小,犹豫很久的 offer 选择..
“其实我感觉这样技术流的公司并不多,类似当年的个推和友盟。”
这句话是指个推和友盟是技术流公司?
@strugglexiang
这个回复太伤人了
2019-06-05 14:09:34 +08:00
回复了 zy445566 创建的主题 程序员 觉醒 js 计算能力,浅谈加密学之椭圆加密算法
@moro 嗯,感谢阅读
2019-05-31 10:04:27 +08:00
回复了 zy445566 创建的主题 Node.js Bitcoin 公私钥是如何生成的
以上代码解析基于官方代码库: https://github.com/bitcoin/bitcoin
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
牛逼,膜拜
1 ... 28  29  30  31  32  33  34  35  36  37 ... 43  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2937 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 13:25 · PVG 21:25 · LAX 05:25 · JFK 08:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.