V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gandli
V2EX  ›  信息安全

使用 Base64 保护隐私,真的是安全之选吗?

  •  
  •   gandli · 67 天前 · 9716 次点击
    这是一个创建于 67 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一次,微信群里组织比赛,需要提交个人信息,比如联系方式和身份证号码等。为了保护隐私,我决定使用 Base64 编码,将信息私发给群主。起初,我以为这种方式可以有效防止敏感信息泄露。但很快我意识到一个问题——群主可能将这段 Base64 字符串复制到任意一个解码网站,解码网站知道了我的个人信息。

    这不禁让我思考,使用 Base64 来保护隐私,真的靠谱吗? 传递重要信息时,你会加密吗?

    119 条回复    2024-10-16 14:42:26 +08:00
    1  2  
    kenneth104
        1
    kenneth104  
       67 天前
    为啥靠谱?
    kenneth104
        2
    kenneth104  
       67 天前
    隐私不都是密钥签名,有啥 Base64 的事?
    lancelock
        3
    lancelock  
       67 天前   ❤️ 4
    谁跟你说 base64 可以保护隐私的
    wwalkingg
        4
    wwalkingg  
       67 天前   ❤️ 1
    Base64 从来都不是为了保护隐私
    darkengine
        5
    darkengine  
       67 天前
    。。。反正群主都能看到你的信息,为啥不直接发啊
    x86
        6
    x86  
       67 天前
    你私聊发不就行了
    tcper
        7
    tcper  
       67 天前   ❤️ 47
    想起 V2EX 上有个人发求职,把 email md5 之后贴出来了
    md5 确实能保护隐私了
    LanhuaMa
        8
    LanhuaMa  
       67 天前   ❤️ 2
    这不禁让我思考,使用鱼缸来喝水,真的卫生吗?补充电解质的时候,你会用水杯吗?
    User2023
        9
    User2023  
       67 天前 via iPhone
    加个 aes 密钥,大部分解密是本地 js ,不排除有在线的
    kenneth104
        10
    kenneth104  
       67 天前
    看到新人 op 还关注安全。。为啥会有这种离天下大谱的想法?
    gandli
        11
    gandli  
    OP
       67 天前
    哈哈哈
    darkings90
        12
    darkings90  
       67 天前
    防君子不防小人
    kera0a
        13
    kera0a  
       67 天前 via iPhone   ❤️ 9
    不是用来保护隐私的,是用来防搜索引擎爬虫的
    344457769
        14
    344457769  
       67 天前   ❤️ 4
    在帖子中使用 Base64 编码的目的是不让搜索引擎的爬虫直接抓取到原始的联系方式,以避免接收和帖子无关的骚扰信息。

    在微信里私聊发送 Base64 编码后的隐私数据没有任何意义,反而增加了双方编解码的工作量。对方大概率还是要以明文形式保存你的数据的,如果出现了隐私泄露,更大可能是对方保管数据时出现了问题而不是在你们沟通的过程中出现了问题。
    PPPaul
        15
    PPPaul  
       67 天前   ❤️ 1
    编码算法又不是加密算法
    x86
        16
    x86  
       67 天前
    @tcper #7 确实,HR 为了保护他隐私都没去解 MD5
    hafuhafu
        17
    hafuhafu  
       67 天前
    感觉你这个场景这么做,多少有点幽默了...
    你发的对象本来就要知道你的信息,而你又是私发,只是多了一个莫名其妙的你编码和群主解码步骤,图啥。
    为什么 V2 上面留联系方式会 base64 一下:为了不让搜索引擎直接收录联系方式,一搜就出来。
    gandli
        18
    gandli  
    OP
       67 天前
    @344457769 确实,我是安全小白
    binxin
        19
    binxin  
       67 天前
    用 b64 难道不是用来防范搜索引擎这个渠道泄漏么。。。。
    potatowish
        20
    potatowish  
       67 天前 via iPhone   ❤️ 3
    这不禁让我思考,我付钱的时候真的安全吗?收钱的人可能会直接拿走我的钱, 这不禁让我思考,付钱时,你会先放到保险箱再给他吗?
    pota
        21
    pota  
       67 天前
    公开论坛发 base64 只是为了不让简单的搜索可以搜到。私发图啥
    liuchenx
        22
    liuchenx  
       67 天前
    编码和加密是两个东西吧
    b821025551b
        23
    b821025551b  
       67 天前   ❤️ 15
    Base64 只是一种编码方式,叫 encode ,用于标准化传输;
    md5 是一种特征值算法,叫 hash ,用户校验传输后的数据;
    而加密,叫 encrypt ,实现算法有 AES 、DES 这些,这个才是真正用于加密的。

    这三种东西用途完全不一样,不要混淆。
    ddczl
        24
    ddczl  
       67 天前
    Base64 只是编码,不是加密,也不是保护隐私用的
    issakchill
        25
    issakchill  
       67 天前
    私发...base64....
    BeautifulSoap
        26
    BeautifulSoap  
       67 天前   ❤️ 7
    虽然 lz 本身对于 base64 理解有误,但上面 20 多层楼,没一个人抓到了 lz 提问的重点,这不禁让我怀疑,楼上各位真的都是帖子都不看就直接评论的主吗?还是各位代码写多了,连基本的阅读理解都做不到了?


    很明显 lz 最担心的核心问题是 “群主可能将这段 Base64 字符串复制到任意一个解码网站,解码网站知道了我的个人信息”。这是个非常实际的问题,也是很多公司明令禁止做的事情:把敏感信息复制到搜到的各种在线编解码网站、在线加密解密网站上进行操作。这些网站虽然方便,但的确有偷偷收集用户提供的信息导致信息泄露的风险

    不解决 lz 的这个问题,上面说的用 aes 加密之类也是没用的,因为你用 aes 加密,发给对方后,对方搜了个在线 aes 解密的网站,然后密钥和密文一输,一样白搭

    对于这种情况,我假设群主是对编程和命令行一无所知的小白,唯一解法就是 lz 自己写个编解码小工具或者找个开源工具,发给群主,让群主用这个别去网上搜
    kyuuseiryuu
        27
    kyuuseiryuu  
       67 天前
    5YW25a6e77yM55Sf5rS75Lit5pyJ5LiA5Lqb5Lq65piv6L275b6u5pm66Zqc77yM5Y+q5LiN6L+H5Zug5Li655Sf5rS75Y+v5Lul6Ieq55CG6ICM5rKh5pyJ6KKr5Lq65Y+R546w44CC
    gandli
        28
    gandli  
    OP
       67 天前
    @BeautifulSoap 不知道大家怎么快捷的解码 base64 ,如果复制到解码网站,就增加了信息泄露风险。但是,你这个就更加复杂了,难道用阅后即焚、非对称来加解密?
    FireKey
        29
    FireKey  
       67 天前   ❤️ 2
    微信私发用 base64,你防的是微信?你微信钱包没绑身份证吗
    gandli
        30
    gandli  
    OP
       67 天前
    @FireKey 我也是掩耳盗铃,其实在裸奔,谈何隐私。
    tomatocici2333
        31
    tomatocici2333  
       67 天前
    base64 是防爬虫啊
    kyuuseiryuu
        32
    kyuuseiryuu  
       67 天前
    你不发给群主 base64 编码的信息,群主就不会拿信息去危险网站解密,那网站是不是就拿不到你的信息了?
    zsc8917zsc
        33
    zsc8917zsc  
       67 天前
    @gandli #28 自己部署一个解码网站呗,纯前端解码不涉及信息采集
    InDom
        34
    InDom  
       67 天前
    @BeautifulSoap #26 你看, 私聊发 base64 反而增加的泄露风险, 真不如直接发明文.
    Link99
        35
    Link99  
       67 天前
    如果不知道你内容的用途 理论上还是安全的
    比如你的账户是 abc123 密码是 123456 编码后发给群主 群主到我的网站上解密
    我就算偷偷存了 也不知道这个有什么用 在我眼里和乱码没什么区别
    但比较明显的内容就需要注意了 比如手机号 邮箱 身份证号

    说起这个 一键部署解码网站算不算一个比较大的需求
    BeautifulSoap
        36
    BeautifulSoap  
       67 天前
    @gandli 麻烦就对了,如果你想要方便,那就选择一个信任的 base64 编解码网站,完全信任它,然后让群主只用这个网站编解码。或者干脆自建一个编解码网站 or 写个单文件的 html 也行。又要安全,又要方便,没那么好的事情
    Rickkkkkkk
        37
    Rickkkkkkk  
       67 天前
    看起来你没用过搜索引擎搜自己的 QQ 邮箱 姓名
    renmu
        38
    renmu  
       67 天前 via Android
    所以你不需要 base64 ,纯属多此一举
    finab
        39
    finab  
       67 天前
    @Link99
    你这话说的,base64 -d 不就是么
    ixcode
        40
    ixcode  
       67 天前
    “这不禁让我思考” 我觉得你在侮辱思考这个词,编码、加密、哈希、签名这些基本概念都搞不清楚,就先别思考了
    twig
        41
    twig  
       67 天前 via iPhone
    Base64 毫无加密功能。

    现在任何一个语言都自带 base64 编码、解码的包。实际生产中的用途是前端用 base64 编码之后,可以把图片直接放到 JSON 里,传给 Rest API 。
    hxysnail
        42
    hxysnail  
       67 天前
    我一直好奇回帖 base64 有啥用,原来是防搜索引擎
    twig
        43
    twig  
       67 天前 via iPhone
    Base64 也防不了爬虫。解码 base64 成本为 0 。爬虫看到 base64 ,爬都爬到了,为什么不解开看看?
    MoonLin
        44
    MoonLin  
       67 天前
    先明白自己防范对象是谁才能选择正确的方式,你私聊发 base64 是为了防谁?
    Link99
        45
    Link99  
       67 天前
    @finab 我一般在浏览器控制台 用 atob
    不过你也提醒我了 去搜索在线解密的大概率也不会用 vercel 一键部署
    twig
        46
    twig  
       67 天前 via iPhone
    @hxysnail 不是。一开始是电子邮件协议传递信息的时候把二进制换成文本,这样可以在不更改协议的前提下,直接传复杂文本或二进制文件,兼容当时很多只支持 ASCII 的邮件传递系统。
    andforce
        47
    andforce  
       67 天前
    笑死我了,你是不是看 V 站很多人都发 Base64 的联系方式?
    mikewang
        48
    mikewang  
       67 天前 via iPhone
    base64 只能防低级的爬虫
    你应该让赛方创建一对公私钥,公布公钥,然后所有人用这个公钥加密发过去。只有持有私钥的人才能解密。
    finab
        49
    finab  
       67 天前
    @twig
    也不是那么容易,爬虫咋知道一个字符串是 base64 ,除了后面可能有两个 ==,难道要把爬到的内容都 base64 解码一下嘛

    其实验证也很简单,你用搜索引擎搜一个内容时,有搜到用 base64 编码后的结果么,没有的话就证明 base64 防搜索是一个有效的措施
    cdlnls
        50
    cdlnls  
       67 天前 via Android   ❤️ 1
    举个例子,假如我知道你的微信号,这个时候你在 v 站明文留下了你的微信号。

    我在 google 上搜索你的微信号,这个时候大概率就能找到你这个账号留下了微信号,然后我就能知道你的 v 站账号,以及你的所有发言。

    然后顺藤摸瓜找到你泄露的其他信息,最终把信息关联起来,可能定位的你的各种信息。

    如果你用 base64 编码,就可以在一定程度上让你已经泄露的信息分散开,让信息关联的门槛变高一点。

    这也是为什么用小号,留小号邮箱,不同网站应用使用不用用户名邮箱的原因之一。
    dule
        51
    dule  
       67 天前
    谁说 Base64 能保护隐私,论坛里发是为了不被搜索引擎等检索到关键信息,而且发的大多也是能够公开的联系信息
    drymonfidelia
        52
    drymonfidelia  
       67 天前
    @finab 对内容 base64 解码的资源消耗可以忽略不计。尤其是针对 V2EX 的爬虫,base64 就是告诉爬虫这里是联系方式或者其它敏感信息,快来爬。所以我觉得大部分 v 友只在意形式主义安全,完全没起到作用
    finab
        53
    finab  
       67 天前
    @drymonfidelia

    那测试一下好了,等一段时间,你分别用下面两个字符串 google 搜一下,看哪个能被搜索到

    1. ZHJ5MTIzbW9uZmlkZWxpYQo
    2. dry123monfidelia
    finab
        54
    finab  
       67 天前
    ZHJ5MTIzbW9uZmlkZWxpYQo 需要你发到另外一个帖子

    关键词都是
    dry123monfidelia
    www5070504
        55
    www5070504  
       67 天前
    哥们 base64 不是加密
    czkm1320
        56
    czkm1320  
       67 天前   ❤️ 6
    drymonfidelia
        57
    drymonfidelia  
       67 天前
    @finab google 搜明文不会搜到 base64 编码后的信息正常,我的意思是在 v 站用 base64 编码就是在告诉营销机器人这里是联系方式,快来收集,这样针对 v 站开发隐私爬虫是比别的网站容易的,别的网站还要用 NLP 之类的方法才能稍微精准一点识别简中互联网上留联系方式的方式 加薇 +v vx 什么的,完全精准识别淘宝都搞不定,v 站不一样,只要分词判断符合 base64 规则后都尝试 base64 decode 一下就能精准收集了
    shewhen
        58
    shewhen  
       67 天前
    @finab #53
    @finab #53 两个都能搜到了
    finab
        59
    finab  
       67 天前
    @shewhen
    ZHJ5MTIzbW9uZmlkZWxpYQo 发在另外一个帖子,然后用关键词 "dry123monfidelia" 搜索
    hartlee
        60
    hartlee  
       67 天前
    base 是躲避爬虫的。。。。
    hxzhouh1
        61
    hxzhouh1  
       67 天前
    @twig #43 正则表达式匹配。
    twig
        62
    twig  
       67 天前
    @finab 「你用搜索引擎搜一个内容时,有搜到用 base64 编码后的结果么,没有的话就证明 base64 防搜索是一个有效的措施」

    这句话逻辑其实有问题。Web 上的东西发出来的主要动机是给人看。Base64 不是直接给人看的。所以直接这么发的人本来就少。
    xz410236056
        63
    xz410236056  
       67 天前   ❤️ 1
    我感觉 V2EX 很多人并不清楚,加密、编码、摘要的区别
    finab
        64
    finab  
       67 天前
    @twig
    主要是讨论发 base64 防搜索是不是一个有效的措施
    hxysnail
        65
    hxysnail  
       67 天前
    @twig 嗯嗯,这个我知道
    LING97
        66
    LING97  
       67 天前
    base64 是防止有些论坛禁止发私人联系方式或者怕爬虫爬到个人信息,谁说这是加密方式的。。。
    proxytoworld
        67
    proxytoworld  
       67 天前
    用 base64 编码,用来保护信息泄露,有点幽默了...
    proxytoworld
        68
    proxytoworld  
       67 天前
    base64 用 cyberchef 本地的
    wupher
        69
    wupher  
       67 天前
    你应该用 AES256 ,甚至公钥密钥加密。
    layxy
        70
    layxy  
       67 天前
    base64 和明文没什么区别,更别提保护隐私了,他都不属于加解密范畴
    vvhy
        71
    vvhy  
       67 天前
    @finab #54 我都要开盒他了,为什么不能把两个关键词都搜一遍
    finab
        72
    finab  
       67 天前
    @vvhy
    那我这样编码呢
    echo "wx: finab1 ." | base64
    datafeng
        73
    datafeng  
       67 天前
    现在计算机专业都差不到这种程度了吗?连最基本的概念都搞不清?
    miaotaizi
        74
    miaotaizi  
       67 天前
    把 base64 编码 的前三位, 挪到后面, 解密的时候再放回去算不算加密?
    goodryb
        75
    goodryb  
       67 天前
    好比你报手机号码,正常是阿拉伯数字, 你用英文就是另一种表达方式,正常人都知道 1 就是 one ,one 就是 1 ,你说这样能保护隐私吗
    zbowen66
        76
    zbowen66  
       67 天前
    谁告诉你 base64 是保护隐私的?
    kaedeair
        77
    kaedeair  
       67 天前
    @gandli #28 浏览器控制台 btoa()编码 atob()解码
    zbowen66
        78
    zbowen66  
       67 天前
    命令行、浏览器控制台、Raycast 之类的软件、甚至浏览器扩展、油猴脚本到处都能解码 base64 ,而你选择了最危险的在线解码
    qiuhang
        79
    qiuhang  
       67 天前
    你没遇到过有人拿你的 qq 号一搜,搜到了你早年在贴吧发的杀马特言论的情况吗? base64 转码防的是这种情况。
    wk333
        80
    wk333  
       67 天前
    @czkm1320 #56 抽象
    BadFox
        81
    BadFox  
       67 天前   ❤️ 1
    考虑一个行为或者资产的安全性是需要从 CIA 三性以及目的上考虑的。你认为自己考虑到了在当前情景中整体保密性的需求,但实际上仅仅是略微加强了传递过程中的保密性。而考虑到你使用的应该是商用的 IM 工具或是邮件等合理的私发传输渠道,以及 base64 是易于破解的编码方式,所以结果是.......你做的是无用功。
    而你的后半段,那更是有一点幽默。当你的信息资产传递到了群主手中,ta 就成为了信息的所有者以及管理者。信息的主体不再是你,你如何去考虑不在自己手中的信息/数据资产的 CIA 三性以及是否不被滥用?这不是嘲笑,这是个切实的问题,国家的答案是合规压力,企业的答案是保密协议,而个体的答案是用脚投票施加压力。

    回到你最后的两个问题,1 、Base64 不是加密方式,是编码方式,在你描述的场景中用来保护隐私是一种完全不靠谱的方式。但是在 V2 的场景,大家为了避免爬虫抓取明文联系方式使用 base64 编码,这是非常靠谱的手段。
    2 、传递重要信息时,我们必然会加密。有些加密是由浏览器或服务器的机制进行,例如 SSL 。有一些加密是由个人进行,例如压缩包密码。所有的手段都是为了在不破坏信息的可用性与完整性的前提下增加其保密性。
    DOLLOR
        82
    DOLLOR  
       67 天前
    大家在 v2 上发 base64 后的信息,主要是防止敏感信息被搜索引擎收录后,搜索框直接输入就能检索出来。
    这可能有一点初级的防社工效果,但可不是为了“保护隐私”,base64 也不是什么“加密算法”。

    你在群里聊天,这些聊天信息本来就不会被搜索引擎收录,搞什么 base64 都是徒劳。相反别人拿你的 base64 去来历不明的网站解码,搞不好反而会被这些网站盗取。
    dog82
        83
    dog82  
       67 天前
    程序员的恶趣味
    wclebb
        84
    wclebb  
       67 天前
    base64 只是为了防止被搜索。
    有点像是 admin#v2ex.com 一个意思。
    i0error
        85
    i0error  
       67 天前
    骗金币的 :P
    pkoukk
        86
    pkoukk  
       67 天前
    @twig #43 YWFAZXJ0,请告诉我这是 base64 还是明文?你打算用什么正则发现这是一个 base64
    iamwin
        87
    iamwin  
       67 天前
    base64 更多只是防止编码出错
    kw8023cn
        88
    kw8023cn  
       67 天前
    你应该先问一个问题:Base64 的作用是什么?
    然后就不会有这个帖子了
    kw8023cn
        89
    kw8023cn  
       67 天前
    还是忍不住想问一句:你是程序员吗?
    dif
        90
    dif  
       67 天前
    @kw8023cn 可能是新手吧,见多了把 Base64 称之为加密的程序员,其中不乏 5 、6 年的“码农”。
    guo4224
        91
    guo4224  
       67 天前
    base64 是明文
    chouvel
        92
    chouvel  
       67 天前
    比方说:别人想搜一个手机号,知道了这一个规则后,它直接用 64 编码这个手机号到搜索引擎搜索。但是我认为可以加一些大家都知道的符号来进行抵御,例如 19501010101,我把它改成 195 ,0101 ,0101 在进行编码,就增强了别人搜索到的难度,而且传递了信息。不知道这在书本里面叫什么,社会工程学?
    Torpedo
        93
    Torpedo  
       67 天前
    @gandli #28 v 站的插件,选中一段之后会有弹窗,直接解析
    GodD6366
        94
    GodD6366  
       67 天前
    无异于脱裤子放屁
    mangoDB
        95
    mangoDB  
       67 天前
    我觉得你对 Base64 理解有误,导致你提交个人信息给对方时做了“匪夷所思”的操作。你需要 GnuPG 来保护你的隐私。
    daquandiao2
        96
    daquandiao2  
       67 天前
    @czkm1320 为啥这个帖子我点开之后 403 了,其他的都是好的
    coldpig
        97
    coldpig  
       67 天前
    @finab 这两个都能搜到了
    FrankAdler
        98
    FrankAdler  
       67 天前
    > 不知道大家怎么快捷的解码 base64 ,如果复制到解码网站,就增加了信息泄露风险。但是,你这个就更加复杂了,难道用阅后即焚、非对称来加解密?

    我做了个小工具,直接发链接,不过貌似只有我自己在用: https://b64s.uk/.1R0npwEfMW0hMR6Qd93i3hzioOqjH5og20aiH8cRIlbSIR1N3OqhLc5TYh
    vvhy
        99
    vvhy  
       67 天前
    @finab #72
    3 位 ASCII 对应 4 位 base64 ,"wx: finab1 ."base64 后包含"nab1"的 base64 ,还是有被搜到的可能性
    这样加盐更保险一点:"f!i@n#a$b%1"
    yvkino
        100
    yvkino  
       67 天前
    不安全,应该用 md5
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1555 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 16:48 · PVG 00:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.