V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Myarms
V2EX  ›  程序员

如何在不知道编码规则的前提下,根据 input 和 output 的样本找出编码所用的规则?

  •  
  •   Myarms · 2021-05-06 16:18:26 +08:00 · 1815 次点击
    这是一个创建于 1296 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原本的转换工具没有说到具体的编码格式,而且是在线的工具,所以使用很麻烦

    我的想法是找到 decode 的规则,写个小程序的工具,不知道这样是否可行?

    这是一个样本
    194670883002 A20ZWPWV6YPW4X
    12 条回复    2021-05-07 14:07:35 +08:00
    ch2
        1
    ch2  
       2021-05-06 16:39:22 +08:00
    如何在不知道解谜规则的前提下,根据谜面和谜底的样本找出解谜所用的规则?
    CSM
        2
    CSM  
       2021-05-06 16:42:16 +08:00
    你给的样本太少了,理论上来说存在无数个函数 f 使得 f(194670883002) = A20ZWPWV6YPW4X,就像找规律填数那种题目可以拟合出非常离谱的公式一样。

    这个在线工具要是在前端编码的,最好的办法就是逆向 JS ;要是后端编码的情况就复杂了,只能多找一些数据然后找规律。

    另外还有一种极端情况,所谓“编码”的结果是随机生成的,只不过在数据库中保存了输入与结果的对应关系,这种就完全无解了。
    dreampet
        3
    dreampet  
       2021-05-06 16:44:13 +08:00
    直接说你想破解协议不就行了? 还 input 、output,还 decode ?
    再说了,求人破解协议就给一组样本?
    nekochyan
        4
    nekochyan  
       2021-05-06 16:54:23 +08:00
    不可行
    Myarms
        5
    Myarms  
    OP
       2021-05-06 17:11:52 +08:00
    @CSM 1 请问多少样本才可以呢,我这边估计 100 条是没问题的。
    2 “逆向 JS ”这个没了解过,我到时查一下。
    3 应该不是随机的
    Myarms
        6
    Myarms  
    OP
       2021-05-06 17:12:20 +08:00
    @ch2 对的
    huabalance
        7
    huabalance  
       2021-05-06 17:45:10 +08:00
    再多发几组 @Myarms
    ch2
        8
    ch2  
       2021-05-06 17:46:20 +08:00
    @Myarms #6 你想知道解谜规则,就只能靠逆向找出来。或者你也可以不用知道规则到底是什么,直接想办法调用那个加密函数就行了
    RingoTC
        9
    RingoTC  
       2021-05-06 21:26:25 +08:00
    可以看做一种机器翻译问题,而且这种 input 到 output 有明确规则的,神经网络应该很好学
    realpg
        10
    realpg  
       2021-05-07 11:25:01 +08:00
    如何在不知道私钥的情况下,只有明文公钥和密文,找出私钥……
    realpg
        11
    realpg  
       2021-05-07 11:25:23 +08:00
    @RingoTC #9
    如何在不知道私钥的情况下,只有明文公钥和密文,找出私钥……
    RingoTC
        12
    RingoTC  
       2021-05-07 14:07:35 +08:00
    @realpg 我理解楼主问的不是加解密的场景?而是编解码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5157 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 09:27 · PVG 17:27 · LAX 01:27 · JFK 04:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.