V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  3dwelcome  ›  全部回复第 83 页 / 共 155 页
回复总数  3087
1 ... 79  80  81  82  83  84  85  86  87  88 ... 155  
2021-05-15 00:25:48 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@no1xsyzy "也有 bcrypt 这种纯粹为了慢设计的算法"

这种就是套着加密名称的 hash 算法,强烈鄙视。挂羊头卖狗肉啊。
2021-05-15 00:03:54 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@no1xsyzy

"你的无限长密钥,有多少随机性?"
你也提到了伪随机数算法的生成品质,决定了最终有多少随机性。

这里并不需要真正意义上的“无限”,覆盖明文长度就可以。我去查了一下,目前比较新的伪随机数算法 xoshiro256/512/1024,在生成 1 PetaByte 长度中,都没有遇到过重复现象。(show no sign of bias after a petabyte of output, https://xoshiro.di.unimi.it/hwd.php)

而且可能你不信,我确实有一些特殊算法,可以做到序列完全不重复,以一定小空间的代价,来换取一定大范围的不重复。
2021-05-14 21:45:38 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@geelaw 其实本帖的主旨,就在于一个时间序列人为可控,另一个纯随机数不可控。

微软如果当年在 CoCreateGuid 里多加几个参数,别全部依赖于随机函数,也就没这个帖子了。
2021-05-14 21:42:33 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@skies457 分享无限长的密钥,用的肯定是生成无序数列的代码片段了。

有了 webasm,几乎什么算法,js 都是能正常运行的。

你要说在分享过程中,代码片段被中间人截取了,那等于是密钥泄漏。几乎任何加密算法,都没办法在密钥泄漏的情况下,避免被破解。(除了量子加密外)
2021-05-14 20:20:29 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@skies457 你说的不就是频率分析攻击吗?

这些攻击针对的都是定长密钥,对于代码自动生成的无限长密钥,这些 XOR 弱点都不存在。

可以不回贴,但不要不懂装懂。
2021-05-14 20:17:37 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@xxfye “但不代表你电脑上的时间就正确啊。”

不同电脑就代表着空域不同,GUID 最后面 8 个 BYTE,就是用来保证空间不一致的。

有个 SSL 设计我想顺便提一下,人家的 random 就不是单纯的随机数,是包含时间戳的。时间是很重要的变量,在一定程度上,要比随机数可控。

https://i.imgur.com/vXJOaPC.jpg
2021-05-14 19:43:10 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@skies457 微软没那么傻,我看了代码,针对 100ns 额外处理有很多,也有随机数来保障。
比如预生成很多 guid 后,系统 cache 起来的。你代码获取到的 guid,时间戳有可能是早期的。
2021-05-14 19:11:46 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@avastms 你买云服务器,可靠性 100%和可靠性 99.9999%,就是本质上的区别。
数的就是小数点后面,有几个 9 。
2021-05-14 19:09:40 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@GuuJiang 没说永远不重复,WIKI 上写了,GUID v1/v2 算法,到 3400 年之前,都不会重复。时间是不会倒流的。

@Mutoo 微软这个 GUID 生成的 COM Interface,不同软件安装后,写入的是同一个用户注册表。
也就是全球开发人员用的 domain, 在同一个地方。
2021-05-14 19:00:20 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@kop1989

"GUID 类并没有承诺 GUID 一定是 100%不重复的。"

你去 wiki 查一下 guid, 有不是随机数,基于时间戳的版本(微软内部用的版本,比如早期 Office 的 COM GUID,都是这个生成的)。

原理就是写入 100ns 为间隔的时间戳,只要大于这个时间段生成的 GUID,就可以保证时间上无冲突,另外机器 ID 或者网卡 MAC,能保证空间上无冲突。

只要时空都能保证,那么就是 100%无冲突版本的 GUID 。也就是微软一开始用 GUID 算法的版本。
2021-05-14 18:52:27 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@AoEiuV020 手机 SIM 卡 PIN 只要输错三次,直接就锁卡了。

也没牵涉到任何加密算法,就是极大限度提高黑客的试错成本。

这样确实是安全性高一些,但个人觉得和算法本身设计,已经没什么关系了。
2021-05-14 18:48:43 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@lovecy "其实代码里对这种极小概率重复做一下处理,代价是很低的"

微软自己内核用的是完全另外一套算法,用到的是高精度时钟,源代码我都找到了。

算法还读取注册表里防重复的值:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\UuidSequenceNumber

但问题是不公开,对普通程序员就区分对待,这点我就觉得很不爽。
2021-05-14 18:22:23 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@kop1989 我的控诉,是要微软给的 GUID 的唯一性得到算法上的保障!而不是返回几个随机数敷衍一下。

普通码农获取 GUID 的两个办法:
1. 用 VS 带的图形界面生成工具。
2. 用 CoCreateGuid 。

这两个方法,都不能在算法上得到保证。API 文档写了“Use CoCreateGuid when you need an absolutely unique number”, 所以我应该无脑信任微软,返回的 GUID 不重复吗?

你加一个 CoCreateGuidEx 函数都好啊,可惜什么都没有。
2021-05-14 18:17:47 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@AoEiuV020

代码运行速度慢 = 安全性高?这种思路不对吧,好算法设计就是要运行速度足够快。

不能说我设计一个加密算法,起名叫乌龟,就很安全,这不科学。

你说的爆破解,也仅仅针对有唯一解的题目。现实中很多密文解密后,都是一行文字,都不能确认是不是唯一的。
2021-05-14 18:06:44 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@nannanziyu

你错了,普通码农只会调用 CoCreateGuid,这才是最常用的。没人会直接调用底层 RPC 的函数,也就是我提到了,你才会去查一下。

你去看看 CoCreateGuid 那个微软 API 文档,就没提到任何有关算法的事情。
2021-05-14 18:01:04 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@AoEiuV020 “简单意味着爆破效率高,因此安全性差,”

AES 还能 CPU 加速来着,运行速度极快,但就是没人说过安全性差。

你这里列举的反面例子里,把 XOR 替换为 AES,还是同样适用的。

只要 XOR 密钥构建足够长,比如明文长度 100M,密钥长度也是 100M (程序生成无重复序列),那么 XOR 安全性一点都不输给 AES 。
2021-05-14 17:55:41 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@xupefei
时间戳算法是完全 0 冲突,另一个随机算法冲突概率极小,但小归小,冲突也是客观存在的吧。

只要是个严谨的码农,想都不用想,肯定选完全 0 冲突的算法。

生成慢点无所谓,关键就是在未来某年某月,千万别冲突就好。

@nannanziyu
不去深究,普通码农哪里会知道那么多。

就算安全性 MAC 去掉可以理解,但不能把时间戳也一起去掉吧?

我们以前同事写各种 COM 代码,都是直接那 Create GUID 工具来生成的。也是对微软无比信任,生成界面就算加个可选时间戳参数,或者加一段随机算法说明,那也是极好的。
2021-05-14 17:19:11 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
@Jirajine 没改,微软的 VS 安装后,会自带一个 Create GUID 生成工具。

我一直天真的以为,这工具是 time base,或者和 Windows 系统时钟有点关系,然而今天发现,就是一个随机数生成器。

那我还不如自己程序来生产随机数呢。完全不加时间相关的变量的 GUID,大规模用起来,心里没底。
2021-05-14 15:44:26 +08:00
回复了 3dwelcome 创建的主题 程序员 友情联动:发支付宝口令红包,欢迎大家破解.
@no1xsyzy 在所有的加密算法里,我还是觉得 RSA 加密最优美。

有随机数 PADDING 的引入,导致每次加密的结果完全不同。

传统 AES 对称算法,就算优化上天,使用同一个密钥,也不可能每次加密的结果不一样。
2021-05-14 14:53:43 +08:00
回复了 heylogo 创建的主题 职场话题 办公室一姐竟当着领导的面摔门而出...😨
@heylogo "惹怒我的是她平时对同事的态度,咄咄逼人的气势,没有和人好好相处的意思。"

问题是一姐一开始就没打算和你们好好相处,这点都想不明白。

有些女人就是天生看不起人。不止看不起你一个,就看不起一大片人,包括领导。

摔门而出,也见怪不怪了。
1 ... 79  80  81  82  83  84  85  86  87  88 ... 155  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   955 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 19:32 · PVG 03:32 · LAX 11:32 · JFK 14:32
♥ Do have faith in what you're doing.