大佬们,雀魂的牌山是否存在被破解的可能?
雀魂吧
全部回复
仅看楼主
吧务
level 13
雀魂的牌山我们能看到sha256码,不能直接反向解码,但是牌山格式是确定的,而且玩家能知道自己的牌还有各家摸切。
如果牌局到了中后期,牌山信息比较充足。能否暴力列出所有可能的牌山,去匹配sha256码?
没听说相关外挂。是因为我的思路有问题,还是说计算量大到不可能实现?
希望大佬们解惑,谢谢。
2023年10月31日 08点10分 1
level 14
可以,但一般计算机算力不够,等破解了早打完不知道多少局了。
2023年10月31日 08点10分 2
那计算量大约有多大?我看了个文件,和我的思路有点像。说是不看牌桌十几二十分钟能解开,看了“显著变快”
2023年10月31日 08点10分
@暗影快乐⚡男 这我就不懂了,得问专业人士
2023年10月31日 09点10分
吧务
level 14
不太现实。首先sha256加密算法就是比较慢的了(重点),再加上能获得的信息极其有限(自家自摸也就四分之一牌山,加上其他家的摸切也没多少,还有14张王牌以及未摸完的牌山)。一局游戏就5分钟左右时间,进行到中后期那就只剩下两分钟左右,算不完的。
2023年10月31日 08点10分 3
在Java的实现中慢了一倍,不算太夸张的差异。代码算法优化,修改编程语言为更高效的c,电脑配置进步,或许破解的时间会缩短到可接受的范围。
2023年10月31日 08点10分
@暗影快乐⚡男 你说得对,但是猫粮的程序员的学习时间是你的很多倍。
2023年11月05日 09点11分
level 1
不能逆向,sha256是摘要算法而不是对称加密
2023年10月31日 08点10分 4
@炎月天舞 说明数量级上已经比较接近,几年内可能具有实战意义
2023年10月31日 22点10分
不是逆向。直接破解原文,然后与sha256比较
2023年10月31日 09点10分
@暗影快乐⚡男 不行的吧,你要是简单的数字组合可能靠字典暴力破解,雀魂牌山原文是几十个数字+字母的排列组合
2023年10月31日 09点10分
@狠狠的冲 写完帖子才查资料,有人说暴力破解在小时级别,毕竟牌山有格式。有人说破解时间不可能。
2023年10月31日 09点10分
level 7
[滑稽]看牌桌推不出来牌山吧… 谁打牌全是摸切的
2023年10月31日 09点10分 5
不看牌桌也可以在在一个小时以内破解出来。sha256比md5慢一倍,两个小时以内[滑稽]
2023年10月31日 09点10分
level 3
我给你一串,你把它给我翻译成三国演义试试
2023年10月31日 09点10分 6
c5d96e397097aac1de53abf3cd77ccd3
2023年10月31日 09点10分
你写个数字,声明范围在0到100以内加密成sha256,几乎瞬间就能破解[滑稽]
2023年10月31日 09点10分
@暗影快乐⚡男 然而麻将牌的组合有多少?
2023年10月31日 13点10分
@林雨酱 难度比想象中低。第一次跑了1个小时结束,结果忘记保存。第二次的结果明天才能看
2023年10月31日 13点10分
吧务
level 14
我简单估算一下吧,假设牌局进行到将近尾巡。先讨论一下未知的牌有多少:
暗王牌+牌山尾的牌按13张算吧(开杠什么的多看几张),其他三家配牌计39张(假设自亲),极端情况其他三家全部摸切,那么这52张牌已经很极限了。
再假设这52张牌全是4枚一组的重复牌(排列数尽可能少),也就是13种牌各4枚,总共有多少种排列方式?
答案是52!/(4!)^13≈10^50种,也就是1后面50个零。
你觉得这一个个试要试多久?
2023年10月31日 09点10分 7
(急着下班回家随手打的,要是有问题踢我一脚)
2023年10月31日 09点10分
确实是个大的不可思议的数目。扑克牌也是10^67次方级别。那之前说的20分钟到1小时破解牌山,也许是吹逼。
2023年10月31日 09点10分
@暗影快乐⚡男 可能还能再极限一点,比如一家开杠可以减少一部分牌在配牌当中可能的位置,但无非就是少几个零而已。这个数量级在5分钟之内以现在的算力说什么也达不到了。
2023年10月31日 09点10分
@BalydNas👻 我回头试下他的代码,能否破解之前对局的牌山
2023年10月31日 09点10分
level 12
不太可能。
玩家在对局中能获得的“牌山信息”基本只有自己的起手、进张,以及别家“摸切”的出牌,这还不能显著缩短“穷举牌山”用的时间。
2023年10月31日 09点10分 8
显著缩短倒的确是可以显著缩短的,每多知道一张牌所需要的时间都是指数级缩短。有没有信息的时间差别大概在10的几十次方数量级。问题在于数量级实在太大了,还差着几十个呢。
2023年10月31日 10点10分
@BalydNas👻 刚刚试了下,1个小时多跑完了,不过不知道对不对,输出太多,命令行炸了[滑稽]。在另一台机子上top,程序还是在运行,刚刚才结束。正在重跑
2023年10月31日 10点10分
@暗影快乐⚡男 我超你来真的啊
2023年10月31日 10点10分
@BalydNas👻 他代码都写好了,我当然得试下
2023年10月31日 10点10分
level 10
算法不支持,
正算容易反算难,加密一瞬间能算出来,解密要算太久了
2023年10月31日 10点10分 10
你没理解楼主意思,楼主的意思是通过已知信息缩小范围然后暴力搜索。是算力不够的原因。
2023年10月31日 11点10分
@BalydNas👻 理解了啊,,也算不出来啊
2023年10月31日 11点10分
@户山今日橙 比如我给你6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b,不用字典解密肯定没法算。但如果我告诉你,这是0~9的整数,那么马上能算出是1
2023年10月31日 11点10分
@暗影快乐⚡男 你给的范围太小了,就剩十个数,实际情况你还是剩很多牌
2023年10月31日 15点10分
level 5
现有一般计算机基本做不到 除非你用服务器级别以上的超级计算机说不定能加快速度 你都那个身价来了破解雀魂?
2023年10月31日 10点10分 11
level 10
举个例子,水龙头往下滴水,但是这个水龙头有点问题,他可能滴可乐也可能滴雪碧,每滴都是随机的,然后你看着滴完的水盆要判断啥时候滴的啥[滑稽]
2023年10月31日 11点10分 12
吧务
level 12
如果4家关闭自动理牌(重点),公开手牌,协力把牌山一张一张记住的话,那么打到海底牌前,可以用一张4090,在10秒内把海底牌是什么遍历出来。
正常的情况下,宇宙毁灭也算不出来。
2023年10月31日 11点10分 13
这个15张排列组合,可能反应不过来就结束了。我六七点试了下,一个小时跑完,可惜没保存下结果。之后再试,结果得等明天才能看。
2023年10月31日 14点10分
@暗影快乐⚡男 这个速度是用MD5计算的,SHA-256要慢得多。CPU的话算力又要比GPU低得多。
2023年10月31日 15点10分
level 10
希望各位还是能尊重一下密码学 大佬们研究这么东西不是吃
干饭
的 不要想太多[黑线]
2023年10月31日 14点10分 14
字典攻击也是经典的密码学问题。虽然加密算法可以视为无法破解,但是有序的原文可能会将穷举量降低到可以破解的地步
2023年10月31日 14点10分
@暗影快乐⚡男 你说的确实是对的,但是既然已经在讨论sha-256这种级别的摘要算法了,还有必要讨论可以被字典攻击的密码吗?有序的原文都在正经的加密算法中,都是需要经过混淆的[汗]你看现在的加密算法res aes elgamel 椭圆曲线密码 能破解吗?
2023年10月31日 14点10分
level 10
不如直接攻击猫粮服务器[吐舌]
2023年10月31日 15点10分 15
level 6
先粗算下速度吧楼主知道一次sha256需要多久吗
2023年10月31日 15点10分 16
我自己的笔记本用SHA-256处理136张牌的牌山字符串10^6次,重复若干次取平均,平均用时在1.6秒左右。算法是Python的hashlib库自带的。即使再堆一些算力,这个速度和极端情况下的牌山组合数(我在7楼的估算结果)相比也远远不够。
2023年10月31日 16点10分
@BalydNas👻 那确实比估算的4090算MD5慢了几个数量级。
2023年10月31日 17点10分
@甜甜cbstt 4090速度大概在多少哇?
2023年10月31日 18点10分
@BalydNas👻 没有密码学层面算法的应该是不用考虑了
2023年10月31日 18点10分
1 2 尾页