请教下大佬们,这种点状纹理的码,能否存储和解析 ID - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
alcoholpad
V2EX    程序员

请教下大佬们,这种点状纹理的码,能否存储和解析 ID

  •  
  •   alcoholpad 2025 年 4 月 22 日 3525 次点击
    这是一个创建于 269 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://imgur.com/PbI9NR4




    我需要将 ID (可以有规则)生成这种图案,不同的 ID 图案不同。这种图案能否存储 ID ,这样的话识别这种图案就可以解析出对应的 ID ,有办法做到吗。用 cursor 生成的程序尝试了好多次,解析出的 ID 都是错误的。

    如果将 ID 和生成的图案存储下来是可以实现这个需求,但是这样效率不高,一个是要将生成的图案存储下来,另一个是图像对比也比较耗时,如果量很大的话,就不合适了。
    第 1 条附言    2025 年 4 月 22 日
    第 2 条附言    2025 年 4 月 22 日
    要实现防伪码的需求,图案的要求就是要这种的,不要问我为什么不用二维码了。
    33 条回复    2025-04-23 12:47:39 +08:00
    lhDream
        1
    lhDream  
       2025 年 4 月 22 日   1
    你这个不就是二维码么...
    alcoholpad
        2
    alcoholpad  
    OP
       2025 年 4 月 22 日
    @lhDream 不是二维码,是二维码就简单了
    hyperos
        3
    hyperos  
       2025 年 4 月 22 日
    这个太小了不好识别吧
    alcoholpad
        4
    alcoholpad  
    OP
       2025 年 4 月 22 日
    如图:
    Mrliduanyang
        5
    Mrliduanyang  
       2025 年 4 月 22 日
    加 v 帮你看下,atob("bGlfX05P")
    levelworm
        6
    levelworm  
       2025 年 4 月 22 日
    规则映射?能知道 ID 是什么样子的吗?纯好奇。
    xtreme1
        7
    xtreme1  
       2025 年 4 月 22 日
    原始需求是什么?
    如果只是让其他应用扫不出来, 加密一下再编二维码就得了
    你这四个角都有定位点, 方向错了都不知道.
    urlk
        8
    urlk  
       2025 年 4 月 22 日
    这排列不规则啊, 怎么解析 ?
    andyskaura
        9
    andyskaura  
       2025 年 4 月 22 日
    你这就是手搓二维码吧,如果要相机识别,首先得有定位,透视变换成平面,然后通过再逐行读取数据,还需要有纠错机制。
    zpf124
        10
    zpf124  
       2025 年 4 月 22 日
    qrcode 还有三个定位图像用来识别方向以及多少像素宽度算一个解析位置,你这个码给我看的话,
    我连反正宽高都看不出来。
    lhDream
        11
    lhDream  
       2025 年 4 月 22 日   1
    @alcoholpad 就是二维码的功能啦... 不需要相机识别的话, 把二维码的三个定位点去掉 让 ai 给你写一个生成与解析,差不多
    alcoholpad
        12
    alcoholpad  
    OP
       2025 年 4 月 22 日
    @xtreme1 防伪码,需要做个小程序来扫这种码。
    alcoholpad
        13
    alcoholpad  
    OP
       2025 年 4 月 22 日
    @shenjinpeng 有些产品防伪码就是这种点状纹理的,扫出来显示产品的信息以及扫描次数扫描时间等。
    alcoholpad
        14
    alcoholpad  
    OP
       2025 年 4 月 22 日
    @andyskaura 是的这个图案的要求就是要这样,要相机识别的,比如有的产品防伪码就是这种,然后它有自己的小程序扫码验真伪,扫这个出来显示产品详细信息等。
    alcoholpad
        15
    alcoholpad  
    OP
       2025 年 4 月 22 日
    @Mrliduanyang atob("bGlfX05P")你这是啥
    815979670
        16
    815979670  
       2025 年 4 月 22 日
    @alcoholpad #15 粘贴到浏览器控制台敲回车就行,主要是防止爬虫直接获取微信号
    vikaptain
        17
    vikaptain  
       2025 年 4 月 22 日
    https://github.com/cyphar/paperback
    感觉这个项目可以满足你的需求
    rekulas
        18
    rekulas  
       2025 年 4 月 22 日
    实现是能实现,不考虑伪装这个能存的信息比隐水印大多了,但是需要自己调整算法,最后做出来可能还不如二维码,我觉得你路走偏了
    上面说的方法就最适合你,加密存储倒二维码就行了,这样只有你的程序能解码,对别人来说也是乱码
    MacsedProtoss
        19
    MacsedProtoss  
       2025 年 4 月 22 日 via iPhone
    思路错了 这里就应该存一个 id 即可 你的后台去展示这个 id 是否合法 被扫描过几次之类的信息不就完事了 前端搞那么复杂做什么
    SayHelloHi
        20
    SayHelloHi  
       2025 年 4 月 22 日
    用二维码

    使用算法加密产品 id 扫码识别出来后 提交给后台处理

    这个比自己自定义图片二维码简单一些吧
    DOGOOD
        21
    DOGOOD  
       2025 年 4 月 22 日
    和点读笔一个原理。现在的小学课本纸上都有这种密密麻麻的小点,比这个小多了,配套的教具都可以读。
    wangtian2020
        22
    wangtian2020  
       2025 年 4 月 22 日
    任何图案,对应一个确定的 string 。那不就是二维码吗!
    非要自己起一个轮子二维码变种,受罪去吧
    alcoholpad
        23
    alcoholpad  
    OP
       2025 年 4 月 22 日
    @wangtian2020 我问的是码的图案要求是这样,有没有办法存储解析出来 ID.
    PopRain
        24
    PopRain  
       2025 年 4 月 22 日
    这个就是自定义二维码吧,开发商可以多赚一笔,别的设备还不好读取出来
    cF06myaQ57WHKMBv
        25
    cF06myaQ57WHKMBv  
       2025 年 4 月 22 日
    有木有可能读取是图片内部加的水印
    xiadengmaX1
        26
    xiadengmaX1  
       2025 年 4 月 22 日
    @alcoholpad #14 逆向抓包这个小程序应该是最简单的了
    manhere
        27
    manhere  
       2025 年 4 月 22 日
    防伪码本身不需要防伪,除非你是离线的信息都在码里。
    snow0
        28
    snow0  
       2025 年 4 月 22 日
    防伪一般不是刮去覆盖层进行扫码,告诉用户是不是真的和扫描次数
    wyntalgeer
        29
    wyntalgeer  
       2025 年 4 月 22 日
    谁要求的让它实现
    noyidoit
        30
    noyidoit  
       2025 年 4 月 22 日
    可以参考二维码的原理实现一个纠错机制,识别失败至少比识别错误要好得多
    lscho
        31
    lscho  
       2025 年 4 月 22 日
    不用纠结了

    原理很简单,但是问题是点状块太小,没有任何纠错和定位机制,导致使用手机相机识别(像素达不到)根本没法做。

    如果是直接上传原图识别,那就太简单了
    UnluckyNinja
        32
    UnluckyNinja  
       2025 年 4 月 23 日 via Android
    我是这么想的,

    你在前端拍一张照片,把照片发到后端去识别解析再,等价于在前端识别一张二维码,包含原本应拍得的照片编码数据,发送到后端去解析判断。如果在前端通过自定义算法进行识别/验证,那么只能是防君子不防小人,这个自定义算法一定会被逆向出来。

    前端显示成什么样不重要(除非你用法币那种物理意义上的高难度/高成本防伪技术),重要的是前端代表的编码信息不被人破解,那么你需要实现的其实是在线验证注册码的机制。

    注册码自身要做到高熵,冗余、稀疏、无序、自校验等等。
    在线验证要做到一号只能验证一次,验证后即失效,验证失败次数过多后限制频率(风控),还可以绑定在线账号对应到用户。
    还要加上涂层防止被随意验证,只让终端用户来进行,用户看到图层被刮开就知道有问题。用简洁的格式还能省点涂料。

    你更需要注意的是,如果伪造方从头到尾包办了整个验证流程,你怎么让用户发现出来?(那种发送注册码到陌生手机号的我真的是没眼看)。
    UnluckyNinja
        33
    UnluckyNinja  
       2025 年 4 月 23 日 via Android
    @UnluckyNinja #32 如果是为了应付甲方,改一下二维码算法算了,变一下样式,三大一小定位方块也改成别的形式,让微信扫码等识别不出来就可以了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2805 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 13:55 PVG 21:55 LAX 05:55 JFK 08:55
    Do have faith in what you're doing.
    ubao msn 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