V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
cnt2ex
V2EX  ›  程序员

物理存储稍微大一点的文件(~ 50K)有什么好办法?

  •  
  •   cnt2ex · 18 小时 56 分钟前 · 3237 次点击

    比如有一些数据需要物理保存。 希望导入和导出能方便,能想到的就只有编码成二维码的形式再打印出来。 但是单个二维码编码的数据最大也就 2950 字节,对于 50K 左右的数据来说需要分割成太多份,感觉也挺麻烦。

    不知道有没有更好的办法。

    58 条回复    2025-03-06 11:42:09 +08:00
    XXWHCA
        2
    XXWHCA  
       18 小时 48 分钟前
    光盘、磁带:是我被淘汰了吗?
    superchijinpeng
        3
    superchijinpeng  
       18 小时 47 分钟前
    db ?
    xiaoqidev
        4
    xiaoqidev  
       18 小时 43 分钟前
    之前刷到过一个彩色二维码,可以存储几十 M 的数据
    knightgao2
        5
    knightgao2  
       18 小时 39 分钟前
    啊,u 盘不可以吗,不行就打印出来呗,加个 ocr 也不麻烦
    deplives
        6
    deplives  
       18 小时 38 分钟前
    合着你的物理保存指的是用打印机打印出来?
    knightgao2
        7
    knightgao2  
       18 小时 38 分钟前
    不过我觉得这个是个 x-y 问题,还是要问下,最开始的需求是什么?密钥保密?离线安全?
    XXWHCA
        8
    XXWHCA  
       18 小时 35 分钟前   ❤️ 1
    @xiaoqidev 是这个 https://github.com/sz3/libcimbar
    使用手机或者电脑摄像头就可以解码图片内容,但是如果要打印出来需要彩印,然后还要考虑时间久了颜色问题
    shadowyue
        9
    shadowyue  
       18 小时 21 分钟前
    成本你不说。
    你去淘宝搜,128M 的 SD 存储卡,几块钱一张。能读能写。
    my3157
        10
    my3157  
       18 小时 16 分钟前   ❤️ 1
    按照 OP 的思路, 可能压缩之后 base64 然后打印最方便
    cnt2ex
        11
    cnt2ex  
    OP
       18 小时 11 分钟前   ❤️ 1
    @XXWHCA @knightgao2
    用这些东西(光盘、磁带、U 盘)无法很好的验证数据是否真的没有被损坏。但如果打印出来,更容易看到哪里损坏了。

    @knightgao2 其次,OCR 存在一定的错误率,如果是几十 K 的数据在识别的时候出一个错,甚至得一个一个字符的找哪里错了,这是为什么我一开始考虑二维码的原因。

    @knightgao2 就是密钥+一些重要密码的保存,因为很多数据是用密钥加密后存在云端的。

    @xiaoqidev 彩色二维码感觉主要是用来没有网络的情况下,用相机传文件。如果说用于存储的话,如果褪色了,里面的就很难说还在不在了。
    my3157
        12
    my3157  
       18 小时 3 分钟前
    试了下, 1M 出头的纯文本, 压缩 base64 之后, 调小字体(5 号)并做适当的排版(双栏), 大概 60-70 页 A4 即可打印出来
    cnt2ex
        13
    cnt2ex  
    OP
       18 小时前
    @my3157 这个方法可以作为另外的一重保险用。但到时候导入计算机时,要么手动输入,要么 OCR 。而 OCR 一旦出错一个字符,还是得一个字符一个字符检查,相当于还是得手动输入。
    my3157
        14
    my3157  
       17 小时 55 分钟前
    @cnt2ex #13 像 zip 这种这种格式都有自校验, 错了无法解压, 至于哪儿错了, 那就得有容错的方式, 二维码页一样, 信息密度高的时候都不好检查哪儿出错了
    my3157
        15
    my3157  
       17 小时 47 分钟前
    @my3157 #14 所以, 如果不信赖电子存储, 首先考虑的是降低信息密度, 比如将数据用 AES/SHA 之类的强安全加密算法加密并冗余存储, 然后将密钥用二维码打印, 或者直接背下来
    MADBOB
        16
    MADBOB  
       17 小时 35 分钟前
    @cnt2ex 多买几个 U 盘不就解决了,原文件+md5 校验文件确保正确,多份也确保不会意外损坏丢失
    sillydaddy
        17
    sillydaddy  
       17 小时 20 分钟前   ❤️ 1
    OP 提到「如果打印出来,更容易看到哪里损坏了」,是不是想:物理备份 3 份副本,如果「肉眼发现」 1 份有所损坏,就换用另 1 份。

    其实它用到数字化存储也很容易,把「肉眼发现」变成「数据校验」就行。数字化不只有校验,更是有纠错,二维码本身就自带校验和纠错,缺失二维码的一部分,不会影响解码。

    纠错可以很强大的,磁盘大片的连续损坏、间隔损坏、超过 50%损坏,都是可以纠错的。二维码的纠错就分 3 、4 个等级。
    duanxianze
        18
    duanxianze  
       17 小时 17 分钟前
    光盘磁带不就是物理存储?比打印到纸上安全多了
    UnluckyNinja
        19
    UnluckyNinja  
       17 小时 13 分钟前
    这不就是说对象存储方案,文件可以哈希验证、冗余存储,为了保存文件打印出来总有种水洗煤火箭的感觉…… 冷存储的机械硬盘比冷存储的纸更容易保存吧,担心就多备份几份,用不同批次的硬盘。密码如果说的各网站密码,那保证 2FA 的可用性比保存密码更重要,忘了就重置
    zx123ok
        20
    zx123ok  
       17 小时 10 分钟前 via Android
    54xavier
        21
    54xavier  
       16 小时 24 分钟前
    @zx123ok 挺有意思的一个项目,试了下确实可用,就是 h5 在手机上高频的截取摄像头画面,解码,手机发热、消耗很大。
    Emiya1208
        22
    Emiya1208  
       16 小时 16 分钟前
    mark 一下,有点意思,特殊情况下确实有可能是有需要的。
    chairuosen
        23
    chairuosen  
       16 小时 15 分钟前
    需要物理保存 不是原始需求,说一下原始需求是什么。也许是 XY 问题
    busier
        24
    busier  
       16 小时 8 分钟前
    @cnt2ex

    你应该考虑使用 BTRFS/ZFS 这类带校验的文件系统解决问题,他们可以发现存储器存储位反转,而磁盘读写不报错的情况。考虑到 ZFS 的复杂性,用 BTRFS 比较方便。

    然后,多 COPY 几个盘做备份!
    hefish
        25
    hefish  
       16 小时 5 分钟前   ❤️ 1
    其实只需要一把精度很高的尺。
    比如你的文件转二进制之后是 e8 54 75 10 b0.... 把这个一串数 转十进制,比如转成了 3123095833234
    然后你只要找一根长 1 米的棍子,用一个精确的尺在 31.23095833234 。。。。cm 处 刻一刀。
    过了若干年,只要用尺子量一下那个刻度,发现是 31.23095833234 。。。。cm , 然后把这个 30 多的数字去掉小数点,转成 16 进制,就是原来的文件啦。
    Emiya1208
        26
    Emiya1208  
       15 小时 58 分钟前
    看问题这么不细致的,楼主在后面的回复说了用来存储密钥或是密码。

    楼主认为 U 盘或是硬盘或是光盘难以观察出来数据是否损坏。但是我认为二维码我肉眼也观察不出来轻微的损坏啊?

    暂不清楚为什么对电子数据这么不信任。技术上验证电子数据是否损坏并不困难,莫不是假设了某种情况下没有计算机可用?

    但是我始终不认为人有能力在存储这方面做到比计算机更好。比如对 一份数据进行加密 然后计算哈希 然后对哈希值再次计算哈希,然后对 数据 第一份哈希 第二份哈希 这三样东西都做三副本备份。我不太认为这样的数据能被篡改。
    aru
        27
    aru  
       15 小时 52 分钟前
    直接用二维码方式就行了。具体可以询问 AI ,20 多个二维码,我感觉打印在一两张纸就行了
    SenkjM
        28
    SenkjM  
       15 小时 50 分钟前
    @cnt2ex 密码可以专门用冷备盘(建议光盘、硬盘双备份),关键性密码密钥文本打印或者手抄。如果是密钥文件的话建议使用几乎不会更改的互联网公开文件,这样你可以靠数量隐藏。
    aru
        29
    aru  
       15 小时 41 分钟前
    @Emiya1208
    二维码是有冗余的,可以容许丢失若干百分比数据
    DOLLOR
        30
    DOLLOR  
       15 小时 34 分钟前
    @cnt2ex
    用 rar 压缩包+恢复记录
    humbass
        31
    humbass  
       14 小时 10 分钟前
    楼主没有表达清楚,实际上要的是数据以可见的方式呈现?

    如果是这样 1 楼 @cnnblike 、20 楼 @zx123ok 的答案最接近
    cnbatch
        32
    cnbatch  
       12 小时 37 分钟前
    OP 这需求,完全可以重新使用十几年前 eMule 流行的时期顺带流行过的 .par2 校验。

    使用 par2cmdline 或者 MultiPar 给目标文件生成一堆校验文件,稍有损坏也不怕,只要损坏不多,就可以使用 .par2 文件恢复出原始内容
    TimG
        33
    TimG  
       12 小时 25 分钟前 via Android
    @hefish 看到这个回复我黑历史上脑尬得脚趾抓地,因为我高中的时候真信过这本书。还跟朋友吹过,还好现在都不联系了。但愿他也不记得。
    horseInBlack
        34
    horseInBlack  
       12 小时 17 分钟前
    @TimG 这是什么小说吗
    kirory
        35
    kirory  
       12 小时 4 分钟前   ❤️ 3
    单片机接 FeRAM ,可以接 USB 当 U 盘用,接个太阳能板一直算 hash ,对了就亮绿灯,坏了就亮红灯
    weakish
        36
    weakish  
       11 小时 26 分钟前
    可以定制高密度二维码,单个二维码可以保存 50 K 甚至更多数据。

    https://github.com/piql/boxing


    读取就比较麻烦,普通手机相机的解析度可能不够,需要比较强力的数码相机。
    mayli
        37
    mayli  
       10 小时 22 分钟前
    啥叫物理储存?是打印到纸上储存?
    光盘,磁带,硬盘不行吗?
    ryd994
        38
    ryd994  
       9 小时 25 分钟前 via Android
    @XXWHCA
    @knightgao2
    U 盘会漏电,光盘会降解,两者都不适合长期保存数据。
    U 盘是靠闪存里的电子记录数据。读写过程其实类似内存,但漏电速度比内存慢得多。理论上用 SLC NAND 而且多重备份的话会寿命更长。
    刻录光盘靠盘片里的染料记录数据。这个染料会逐渐降解。特别是潮湿高温的环境。


    @cnt2ex #11 你在开什么玩笑?果然是 XY 问题。校验码有没有听说过?还可以分段校验,精确告诉你哪一段损坏了。也可以加前向纠错码,也就是上面提到的冗余码,读取的时候不仅可以识别错误还可以修复错误。
    最不济你多存几份副本,在不同的媒介上。
    tywtyw2002
        39
    tywtyw2002  
       5 小时 55 分钟前
    直接上 eeprom 不久行了。这东西 除了 静电,弄不坏的。
    dode
        40
    dode  
       4 小时 24 分钟前
    可以压缩吗,
    TimG
        41
    TimG  
       3 小时 25 分钟前 via Android   ❤️ 1
    @horseInBlack 天才在左疯子在右,很有名的畅销书,这是其中一个案例。作为小说思维清奇,可以充当酒桌轶闻,作为记实录和科普书籍则大有危言耸听、刻意满足猎奇之嫌。跟日本马桶水能喝、美国夏令营等“意林文章”差不多的时代性作品,只不过吹的是精神病人。
    NSAgold
        42
    NSAgold  
       3 小时 22 分钟前 via Android
    @hefish #25 实际上不可行 以米为尺度转十进制你不能多于 35 位数字 现实中不存在 1*10^-36m
    NSAgold
        43
    NSAgold  
       3 小时 16 分钟前 via Android
    @TimG 这个最早的出处应该是科幻世界来着 但是这个脑洞没有考虑数学是连续的,但真实世界不是,真实世界有最小单位普朗克长度
    strobber16
        44
    strobber16  
       2 小时 37 分钟前 via Android
    刻石头上
    EastHorse
        45
    EastHorse  
       2 小时 32 分钟前
    纹在身上
    langhuishan
        46
    langhuishan  
       2 小时 15 分钟前   ❤️ 1
    一个外星人偶然来到地球,觉得地球很有趣,想带些资料回去。但因为飞船空间有限,他发现带整套《大英百科全书》不太现实。于是,外星人想了个办法:用数字代替字母,这样得到了一串长长的数字。然后在这串数字的前面加上"0." 使之以小数点的形式存在之后再以飞船长度为 1 , 根据之前的小数点与 1 的比例, 在飞船的某个地方刻上一个点`
    回到自己的星球后,及其精确地测量出那个点之于飞船所在的比例。
    wangtian2020
        47
    wangtian2020  
       2 小时 13 分钟前
    存 U 盘在需要的时候再打印出来不行吗。我没搞懂物理存储的意义是什么,存在存储设备上/存在网络上,在任意需要的时候还是能打印出来变成物理存储啊
    unco020511
        48
    unco020511  
       2 小时 9 分钟前
    你用 word 打印出来不就是物理存储吗
    midpoint
        49
    midpoint  
       2 小时 2 分钟前
    质量好些的光盘刻录,放干燥箱,在你有生之年里都不会有问题
    fbxshit
        50
    fbxshit  
       2 小时 0 分钟前
    用某些常数的某些位的一部分做你的密码,就永远不会丢失了。 比如 pi+e 的小数点后 100 亿位到 100 亿+100 位做你的密码,忘记了就拿个计算机再算一下。
    colincat
        51
    colincat  
       1 小时 53 分钟前
    有点意思
    @langhuishan
    sjkdsfkkfd
        52
    sjkdsfkkfd  
       1 小时 46 分钟前
    把这堆东西加密一下主密码写到纸上不就行了,加密的那堆玩意儿到处备份就行了,难道还怕有人能破解加密算法?
    vincentWdp
        53
    vincentWdp  
       1 小时 40 分钟前
    @langhuishan 虽然但是, 物理尺度有极限的, 最多也就到夸克级别吧. 这跟数学上无限是没办法比的
    NoKey
        54
    NoKey  
       1 小时 36 分钟前
    什么样的数据,需要如何回复读取,成本怎么样,都不提
    然后,怕不知道有没错误,搜一下校验码,先了解一下呗
    NoKey
        55
    NoKey  
       1 小时 30 分钟前
    @langhuishan 牛逼
    Lovres
        56
    Lovres  
       1 小时 12 分钟前
    emmm 这种需求.... 我记得有人用这种方法,跳过摆渡系统,把内网资料搞出来了 安全培训的一个案例
    2333wz
        57
    2333wz  
       27 分钟前
    二维码刻在石头上
    zjsxwc
        58
    zjsxwc  
       21 分钟前
    50K Byte 也就 18 个二维码,
    打印 18 个二维码来备份?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4492 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:03 · PVG 12:03 · LAX 20:03 · JFK 23:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.