V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
acthtml
V2EX  ›  问与答

求一种不能反推的算法。

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

    通过数字和样式的组合,显示正确的的价格。例如产品的真实价格是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  
       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   ·   实用小工具   ·   5640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 08:13 · PVG 16:13 · LAX 00:13 · JFK 03:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.