V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kkhaike  ›  全部回复第 8 页 / 共 38 页
回复总数  745
1 ... 4  5  6  7  8  9  10  11  12  13 ... 38  
2023-01-13 12:27:27 +08:00
回复了 jaredyam 创建的主题 Java 这段随机数生成代码为什么这么写?
我说的是 真随机 的获取非常慢,因为涉及到操作系统要主动将熵值填入熵池,这个是很缓慢的。

golang 的 crypt/rand 在某些系统下并不是纯正的真随机(纯真随机应该类似于 /dev/random 一样会在熵池被掏空时阻塞),golang 在不同的操作系统下的实现
// On Linux, FreeBSD, Dragonfly and Solaris, Reader uses getrandom(2) if
// available, /dev/urandom otherwise.
// On OpenBSD and macOS, Reader uses getentropy(2).
// On other Unix-like systems, Reader reads from /dev/urandom.
// On Windows systems, Reader uses the RtlGenRandom API.

1. getrandom(flags==0), 相当于 /dev/random ,https://github.com/torvalds/linux/blob/d9fc1511728c15df49ff18e49a494d00f78b7cd4/drivers/char/random.c#L1343-L1350 ,默认会阻塞等待熵值
2. getentropy ,https://support.apple.com/zh-cn/guide/security/seca0c73a75b/web , 使用 Fortuna 算法,安全度很高的伪随机并使用熵源初始化,无阻塞
3. RtlGenRandom ,https://learn.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom , 文档上就说是伪随机
4. /dev/urandom ,不会阻塞,会在熵值耗尽使用 crng_fast_key_erasure 获得伪随机结果( chacha 加密结果的一部分) https://github.com/torvalds/linux/blob/d9fc1511728c15df49ff18e49a494d00f78b7cd4/drivers/char/random.c#L336-L341
2023-01-11 21:16:00 +08:00
回复了 jaredyam 创建的主题 Java 这段随机数生成代码为什么这么写?
这是对的。SecureRandom 应该是使用系统熵的真随机。使用这个作为伪随机的种子能够做到更好的效果。
因为在分布式 /多实例场景下,使用时间作为种子也很容易得到初冲突。

c++11 后也是这样的,参考 https://learn.microsoft.com/zh-tw/cpp/standard-library/random?view=msvc-170 最后一个实例
go 也有使用 crypto/rand 设置 math/rand 种子的用法

主要原因是真随机的获取非常慢。不适合在业务场景下使用。这种方式能够兼得随机性与速度的最好效果(甚至可以在多线程场景下分线程创建以避免锁开支)
2023-01-11 20:55:08 +08:00
回复了 GGGG430 创建的主题 MySQL sql 中包含特殊字符问题
黑客就喜欢你这样的开发
2023-01-11 14:11:51 +08:00
回复了 DenseHazy 创建的主题 程序员 请教一个文件格式 vbf
2023-01-08 12:37:31 +08:00
回复了 Features 创建的主题 问与答 摩托车和 smart 敞篷版怎么选?
难道第一映像不是 比特派 5k 怎么弄到的吗
2022-12-27 19:33:02 +08:00
回复了 MoRanjiang 创建的主题 问与答 有办法快速恢复格式化的硬盘么?
格式化完别动,然后用 diskgenius 恢复
2022-12-27 14:32:49 +08:00
回复了 git00ll 创建的主题 上海 最近要被上海居住证愁死了,求黄牛推荐
我记错了是,1200 一个人
2022-12-27 14:32:23 +08:00
回复了 git00ll 创建的主题 上海 最近要被上海居住证愁死了,求黄牛推荐
YTIwMTYwNjMz 这个是我之前找过的
2022-12-27 11:51:36 +08:00
回复了 git00ll 创建的主题 上海 最近要被上海居住证愁死了,求黄牛推荐
淘宝好像 2000 一个人吧
2022-12-06 17:34:44 +08:00
回复了 iam 创建的主题 程序员 用户合并的问题和思考
建议干死这个产品
或者增加必备资料的导入 /导出
2022-10-26 18:21:09 +08:00
回复了 kuicc1987 创建的主题 macOS macOS vuntera 13.0 值得升级么?
现在只发现 大写锁定键 切换输入法 有 bug ,会切换到输入英文字母+中文符号的形态,并且没办法切换回去了。。

现在使用 ctrl + space 切换
2022-09-21 14:25:37 +08:00
回复了 findjh 创建的主题 程序员 想买 macbook pro 14 寸,要 1 万 8,但是存款只有一万四。
可以选择抄底美股
2022-09-20 11:34:32 +08:00
回复了 djyde 创建的主题 程序员 做了 6 年程序员,我学到的 10 条经验
等你到了 12 年经验后,发现什么都顶不上"会吹牛"这个技能好
2022-09-16 13:09:49 +08:00
回复了 eryajf 创建的主题 程序员 学习周刊-总第 71 期-一些国内的公司在服务网格方面的实践
我记得还有个 dive
2022-08-30 18:18:40 +08:00
回复了 yesterday1mo 创建的主题 分享发现 畅想一下实现量子计算产业化的时代
一堆私钥泄漏出来,然后区块链不复存在
2022-08-30 18:06:53 +08:00
回复了 Yunsheng 创建的主题 推广 我又双叒叕来给大家送猕猴桃🥝来啦,分子集合
+1
2022-08-30 16:31:25 +08:00
回复了 lanlanye 创建的主题 Python 你们说 Python 这个是 Bug 还是 Feature?
我刚学 python 也踩过这个坑,默认值要用 None
2022-08-28 19:28:21 +08:00
回复了 lcj2class 创建的主题 程序员 Zig 中文月刊 -- 202208
上面的 所有 说多了
之前我写的是 c ,后面改成 cpp ,cpp 还有很多模板元替代不了

主要现在还进度太初级,用来写业务后台应该没有 golang 写的快,但是适用在一些内存敏感的中间件之类
2022-08-28 19:21:59 +08:00
回复了 lcj2class 创建的主题 程序员 Zig 中文月刊 -- 202208
今天学习了一下,说下我觉得比较有特色的两点

1. comptime
这个直接能够替代 cpp 所有预编译阶段的特性,比如
宏分支,简单泛型,constexpr 等
2. 错误必处理以及 error union type
try catch 有点像之前 go2 的某个讨论方案
1 ... 4  5  6  7  8  9  10  11  12  13 ... 38  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1282 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 16:50 · PVG 00:50 · LAX 08:50 · JFK 11:50
♥ Do have faith in what you're doing.