-
hacpai 忠实用户,自己也搭建了一套:itbook.com
2020-03-21 16:28 -
Python 的强大体现在什么地方呢?
2020-03-21 12:41语言特性丰富,比如生成器,lambda,async,字符串插值,这些现代特性都有
具有用于数值处理的 numpy 技术栈,成为信号处理,图像处理,机器学习,数据分析的首选
web 开发也不差
第三方库非常多,除了 java 之外几乎没人比它多
具有扁平作用域,一等函数,用起来舒服
-
如何成为一名黑客 How To Become A Hacker
2020-03-12 15:16黑客一词的来源是 MIT 的某个实验室,最初形容一群破解火车调度系统的人。
当然,黑客一词并不仅仅用于计算机和软件领域,并且在现代的语境下,黑客一词可以泛化(比如说生活黑客,破解恋爱系统和消化系统),但必须遵循几点:
- 系统论思维:了解系统
- 还原论思维:能够拆解并且利用系统
- 最重要的:(最好是颠覆式的)创新
举几个例子:
PUA:了解两性关系是个系统,并遵循(可能有些模糊的)流程,能够用一些手段加速每个流程,用大数据手段量化流程中的态势。
生物黑客:了解基因工程,能够设计/制造新的基因,甚至自制工具,解决能源或者环境领域的问题。
心理学黑客:了解心理学,让一些心理学技巧为自己编程,纠正自己的行为。
重点在系统和创新上,而不是什么开源运动,你这更像给开源运动者写的教程。
-
Array - initialize2DArray
2020-03-11 12:26给个
python
版的:mat = [[val] * w for _ in range(h)]
JS 没有
range
也没有Array.repeat
就麻烦死了。。 -
JavaScript - 省略后半部分参数的传入
2020-03-11 11:56...
放在定义/声明上,它是剩余参数:let func = (...args) => { /* ... */ } let [a, b, ...c] = [1, 2, 3, 4, 5]
放在其他地方是展开:
let arr1 = [1, 2, 3] let arr2 = [0, ...arr1, 4] console.log(...arr2)
-
GitHub 图床的正确用法,通过 jsDelivr CDN 全球加速
2020-03-11 11:45一个仓库最大 1G,大家尽量压缩图片(PNG/GIF 位数或 JPG 图像质量),省着点用。😂😂😂
-
现在网站越来越难渗透了,渗透测试这个方向还有前途吗?
2020-03-09 15:31现在服务越来越多,理应漏洞是越来越多的,只是以前那种 PHP 未定义行为和 C 缓冲区溢出的漏洞很少了,需要重新总结。
-
关于用户密码使用盐加密后,盐的存储位置
2020-03-09 13:14如果你觉得,标准库里面的随机数算法,也就是线性同余 + 当前时间戳是真随机数的话,NAIVE。
由于当天时间是不确定的,并且这种算法的输出在概率分布上足够随机,所以它在特定情形下可以当随机数用。
但又不表明一切随机数就得按照这个算法来,其他的办法多了去了,懂?
-
关于用户密码使用盐加密后,盐的存储位置
2020-03-09 13:02你对随机数太一知半解了。
你拿线性同余算法生成出来的都是伪随机数。
md5(用户名)可以看做真随机数。
建议你好好研究一下标准库里的随机数都是怎么生成的,真随机数和伪随机数的区别,检验方法,然后再做做实验,别老跟这儿撕逼。
-
关于用户密码使用盐加密后,盐的存储位置
2020-03-06 21:52salt 不是隐藏的东西,是直接写在用户表里面的,黑客根本不用猜规律,直接 dump 数据库就行了。
彩虹表的构造过程就是对常见密码跑一遍
md5(pw)
,假设这个复杂度是f(n)
,那么无论用用户名还是新的随机值都是m * f(n)
,m
是数据库中用户的数量,这两种方法本质上没区别。至于猜规律更是无稽之谈。给你前五个用户名,你给我预测下一个用户的用户名?能预测出来?