V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
acthtml
V2EX  ›  问与答

求一种不能反推的算法。

  •  
  •   acthtml · Mar 24, 2014 · 5559 views
    This topic created in 4416 days ago, the information mentioned may be changed or developed.
    应用场景:网站的价格防抓取,不想使用图片代替。

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

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

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

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

    只能防君子。
    acthtml
        24
    acthtml  
    OP
       Mar 25, 2014
    @pfitseng 详细点,没理解。
    Ricepig
        25
    Ricepig  
       Mar 25, 2014
    如果你看过一个叫“数学时钟”的,可以按照这个实现,就是不知道客户数学基础有没有。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2961 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 00:29 · PVG 08:29 · LAX 17:29 · JFK 20:29
    ♥ Do have faith in what you're doing.