友情联动:发支付宝口令红包,欢迎大家破解.

2021-05-14 11:36:46 +08:00
 3dwelcome

昨天有个帖子: https://www.v2ex.com/t/776529 前端加密让大家破解 AES 加密红包,这太离谱了。

我把 AES 算法去掉,现阶段的计算机要破译几乎不可能。改成了最简单的 XOR 加密,也放入了口令红包,欢迎大家破解。

规则如下:

  1. 支付宝口令红包是纯数字的 0~9, 长度固定为 8

  2. password 明文密码被限定为 0~9, a~z, A~Z 这个范围内,无特殊字符,无中文和符号。

  3. 为了便于校验结果是否有效,支付宝口令累加起来的数字,是 45 。(比如口令是 12345678, 累加值就是 1+2+3+4+5+6+7+8=36)

  4. 核心解密函数就一行,password 是不知道的,是前端 input 用户输入。

var str = "WmXOsVFG";
var pass = "????????";
var num = "";

for (var i=0;i<pass.length;i++)
num += String.fromCharCode(pass.charCodeAt(i) ^ str.charCodeAt(i));

6381 次点击
所在节点    程序员
57 条回复
adm7n
2021-05-14 12:43:29 +08:00
算出来 pass=oZozKoww, num=87758910,测试发现不对
3dwelcome
2021-05-14 12:58:02 +08:00
@adm7n 这题其实是无解的,暴力算下来,排列组合后,总共有 36 万种口令红包的可能性。我发的红包,只是其中之一。

比如 87758910 和 87758901(pass=oZozKovv),数字累加起来都是 45 。

很多人都依靠高强度加密算法,我想说,没密钥,连最简单 XOR 都不好破解。
no1xsyzy
2021-05-14 13:28:50 +08:00
主要是通常的明文不是毫无意义的随机数,而且密钥不太可能跟明文一样长。

比如保持 8 位,模仿 virginia 循环 XOR,并且明文是 12 个不同的目前存活的人的生日,有非常高的概率破解出来。
sillydaddy
2021-05-14 13:32:36 +08:00
同意 3 楼。
看看我设计的“文字指纹”是怎么惨被差分攻击破解的:( /t/774059 )
3dwelcome
2021-05-14 13:41:15 +08:00
@no1xsyzy "而且密钥不太可能跟明文一样长。"

密钥长度可以用种子 SEED 加上程序生成,来实现和明文一样长。

这点技术上问题不大,有那种程序生成很长,又不重复的序列。
3dwelcome
2021-05-14 13:47:25 +08:00
@sillydaddy “有没有办法防止 app 内资源被提取呢?”

如果我是你,就把本地资源加密,密钥别写进程序里,在用户登录的过程中,服务器动态获取,动态解压资源。

这样的话,离线资源是没办法被破解的。
matrix67
2021-05-14 13:48:08 +08:00
这让我想起了之前《每个社区总有一个神贴,我被他浪费了整整一个小时。。》( https://www.v2ex.com/t/145275 )这个帖子里面提到的彩虹表事件。

2013 年左右就有的。逆向出来送 mpb 。

http://www.v2ex.com/t/29091
http://www.v2ex.com/t/29113
http://www.v2ex.com/t/29184
no1xsyzy
2021-05-14 14:46:42 +08:00
@3dwelcome 那把它再拉长点,不重复序列转换成向量表,不就是 DES 了嘛(
加密算法实现上并不复杂(否则根本无法运用,不可能每个语言每个平台都写一遍非常复杂的实现(当然,尽量不要自己实现,你还得保证自己实现得没错)),难点在于构造这个算法,同时还得证明这个算法足够强。
AoEiuV020
2021-05-14 15:00:58 +08:00
@matrix67 精彩,看的我都差点忘了自己在上班了,
3dwelcome
2021-05-14 15:44:26 +08:00
@no1xsyzy 在所有的加密算法里,我还是觉得 RSA 加密最优美。

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

传统 AES 对称算法,就算优化上天,使用同一个密钥,也不可能每次加密的结果不一样。
sillydaddy
2021-05-14 15:53:30 +08:00
@matrix67 #7
真是神帖啊。浪费了一个小时,不过看得过瘾,哈哈。
是不是马甲,每个人都心里有数。
不过也真巧,正好应了我在 4 楼提到的“文字指纹”——可以把各方的发言找出来,验一验文字指纹就知道了,这事有够无聊,也挺有意思 ( 逃
blvvet
2021-05-14 16:00:12 +08:00
彩虹表事件看完觉得站长好 low
xloger
2021-05-14 16:07:05 +08:00
@matrix67 #7 看完了,挺有意思的。然后也看到了后续的一些质疑与回应。不知道这事后面有没有公论,但我倾向于认为这事还挺真实的。

不知道各位如果要生成一个字符串的 MD5 会用什么方式?我的话,固然是可以用集成好的 Guava 本地跑一次结果,但我更大概率会用我装的 Chrome 插件 “前端工具箱” 或者我常用的一个工具网站 https://tool.oschina.net/ 。而这两个都可能存在会将我的 md5 计算保存到彩虹表中。

第二贴里有人质疑破解者哪能那么巧黑到发帖者的电脑,说也是一起炒作的。这让我想到了个问题,两个骰子都是 6 点的概率是多少?大家都会说 1/36 吧。但是实际上两个 1,两个 2 这样的,让人感觉是巧合的例子,那就是 1/6 了。如果发帖者没有这个漏洞被黑,也可能有下一个漏洞被黑,最后展现出来的好像很巧合实际上并不是。

后续还有人也试图发个 md5 值和给出规律,让破解者来验证。这种行为是毫无意义的,所谓的自证清白很难。因为如果回应了这个帖子,那又会有人说这是站长联合这个质疑者的炒作,反串白。

总之,到底是不是真的对我已经不重要了,这个鱼摸得很值很开心。马上就能下班了!
GeruzoniAnsasu
2021-05-14 16:09:46 +08:00
@sillydaddy 咋老惦记你的文字指纹……论文查重就是文字指纹,你品
xloger
2021-05-14 16:13:36 +08:00
@blvvet #12 人是会成长的,技术也是会成长的。谁也不可能一开始对计算机的每个体系都很了解啊,很多你以为的常识并不是常识。
比如二进制是基础是吧,那今天还有个贴讲了 XOR 加密,也就是通过异或运算进行的,为啥异或能做到这些呢,hash 计算中也运用到了 XOR 进行搅拌,为什么选用 XOR 进行这些呢?我没有杠的意思啊,我是最近恰好在补一些相关的知识。这对基础好的人来说可能也是常识,但反正我现在还没看懂 hash 的具体实现。

而回头看几年前的自己,如果觉得 low 是很正常的,说明自己进步了。而这种行为顶多是看看自己,用来看别人就不合适了。
kop1989
2021-05-14 16:35:01 +08:00
@matrix67 #6

这个有点意思。
这几个人写了一大通,最终等于什么也没说。
lbyo
2021-05-14 16:59:15 +08:00

如果不是炒作,那我觉得这是唯一能解释得通的了
kop1989
2021-05-14 17:07:27 +08:00
@xloger #11

如果是以现在的视角,结合当年的情况来看,我更倾向于这件事不是真的。

1 、过于戏剧化,尤其是大学老师那个。
2 、成功在碰撞者,表达和立场转变之快令人乍舌,从不可一世的大神一举变成“我朋友”。
3 、原帖表达有很多不合理之处,最终归结到一个“API”上。
4 、碰撞出合理结果的速度太快。

不过楼上说站长的水平问题确实有失偏颇。
无论是结合当年的 IT 普及水平,IT 中文信息丰富程度,还是 V 站当时的发展需要,我觉得站长当时做出的回复,还是相对合理的。如果我是站长,可能我会更加难掩兴奋的去推波助澜,甚至亲自下场搅局。
aloxaf
2021-05-14 17:10:52 +08:00
@3dwelcome #2 异或虽然简单但安全性并不一定差,在密钥随机且长度和明文相等且只使用一次的情况下,也是理论上无法破解的……
AoEiuV020
2021-05-14 17:22:53 +08:00
@aloxaf 简单意味着爆破效率高,因此安全性差,
无法破解只是正确解太多而已,
就像楼主这题,假如正确密码是“fUkyFgwu12”,正确答案是“1836511212”,
这时候别人跑出来密码是"gUkyFgwu12", 答案是"0836511212", 同样是合理的,但答案是错的,这破解就没有意义,

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/776889

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX