求一种不能反推的算法。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acthtml
V2EX    问与答

求一种不能反推的算法。

  •  
  •   acthtml 2014-03-24 14:48:07 +08:00 5226 次点击
    这是一个创建于 4221 天前的主题,其中的信息可能已经有所发展或是发生改变。
    应用场景:网站的价格防抓取,不想使用图片代替。

    通过数字和样式的组合,显示正确的的价格。例如产品的真实价格是234,实际输出的是32312345,其中对应的样式是text-indent:-4em;width:3em;这样用户看到的显示价格就是234。
    问题是这种做法的算法是可以破解的,有没有客户端不能破解的算法。
    25 条回复    1970-01-01 08:00:00 +08:00
    Ever
        1
    Ever  
       2014-03-24 14:49:23 +08:00   1
    符合这要求的应该是没有的.
    blacktulip
        2
    blacktulip  
       2014-03-24 14:56:22 +08:00 via iPhone   1
    你自己能反推别人就能
    sivacohan
        3
    sivacohan  
    PRO
       2014-03-24 14:59:48 +08:00   1
    每小时一变!
    123123
        4
    123123  
       2014-03-24 15:01:45 +08:00   1
    设计多种算法随机显示
    acthtml
        5
    acthtml  
    OP
       2014-03-24 15:04:36 +08:00
    就算随机、多变也能破解。客户端还是通过这些显性的规则来得到真实价格的。

    感觉这玩意像造永动机一样的。
    ijse
        6
    ijse  
       2014-03-24 15:07:20 +08:00   1
    想到一种,可以通过自定义字体,将数字以其它编码替换,这样对用户显示是正常的,但实际字符编码是其它;

    这样子其实有点类似图片的方式。
    ritksm
        7
    ritksm  
       2014-03-24 15:07:36 +08:00   1
    你的js别人都看得见的
    hahastudio
        8
    hahastudio  
       2014-03-24 15:10:46 +08:00
    -有这辙京东淘宝早就学过去了-
    binux
        9
    binux  
       2014-03-24 15:14:59 +08:00
    再不济,我就不能截图吗!
    acthtml
        10
    acthtml  
    OP
       2014-03-24 15:15:15 +08:00
    结贴,没有这算法。
    otakustay
        11
    otakustay  
       2014-03-24 15:42:49 +08:00
    淘宝曾经说过:大不了把你显示价格的元素加上样式当作我的登录验证码
    aec4d
        12
    aec4d  
       2014-03-24 16:01:12 +08:00
    显示那么整齐还怕不能OCR?
    PurpleSun
        13
    PurpleSun  
       2014-03-24 17:31:38 +08:00
    为每个价格生成随机盐
    deepure
        14
    deepure  
       2014-03-24 17:44:54 +08:00 via iPad
    @ijse 可以直接把字体下载来打开看一下
    P233
        15
    P233  
       2014-03-24 17:54:39 +08:00
    把价格输出成 CSS box-shadow 堆像素,哈哈
    LU35
        16
    LU35  
       2014-03-24 18:21:08 +08:00 via Android
    @otakustay 这个不好验证正确性吧?
    P233
        17
    P233  
       2014-03-24 18:34:25 +08:00
    像这样 http://jsbin.com/kanuwizi/1
    或者更复杂一点 http://jsbin.com/kanuwizi/3

    每次输出随机打乱 box-shadow 的顺序,浏览器显示没有问题,反推肯定非常非常复杂
    P233
        18
    P233  
       2014-03-24 18:45:22 +08:00
    更更复杂一点:加入背景底色,数字的颜色通过多块像素(rgba)重叠调配而成,反推就应该不可能实现了
    Zhang
        19
    Zhang  
       2014-03-24 18:46:11 +08:00
    只要肉眼可读的,用程序也可读。我就知道一个识别屏幕上任何一个位置的文本的库
    loading
        20
    loading  
       2014-03-24 19:29:50 +08:00
    @otakustay 膜拜,免费打码
    pfitseng
        21
    pfitseng  
       2014-03-24 19:42:40 +08:00 via Android
    让我想到了老外那种可读性时钟,比如小时十元差一分,一个三三个九点九九
    luikore
        22
    luikore  
       2014-03-24 20:57:49 +08:00
    做成三维立体图好了
    davidyin
        23
    davidyin  
       2014-03-25 06:15:46 +08:00
    不能反推的算法楼上有不少。
    可别人的解决方案是不反推,所以这是一个无解的问题。

    只能防君子。
    acthtml
        24
    acthtml  
    OP
       2014-03-25 09:45:47 +08:00
    @pfitseng 详细点,没理解。
    Ricepig
        25
    Ricepig  
       2014-03-25 12:20:43 +08:00
    如果你看过一个叫“数学时钟”的,可以按照这个实现,就是不知道客户数学基础有没有。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2975 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 13:26 PVG 21:26 LAX 06:26 JFK 09:26
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86