
我看到很多人在网上留联系方式时会先采用 base64 进行编码,这有一定隐私保护效果。
不过有两个问题。其一,联系方式的 base64 编码是固定的,你在 v 站及别处留的也自然是同一个字符串,那么别人根据你 v 站这个字符串总能搜到你在别处留的相同字符串。
其二,信息的采集者可能是 hr 或行政文员,他们不一定熟悉 base64 怎么解密,多少要动手点好几下。
我很早就注意到这个不便,最近正在学习 next.js + tailwindcss ,正好就尝试解决这个不便。
我的思路是,用随机 key 加密我们的联系方式字符串,这样各处留下的字符串都不同,可以防止别人通过搜索引擎把我们在各处的信息串联起来。其次,采用网址 url 的模式,将加密后的信息及 key 作为参数附在后面,当我们点击这个 url 的时候该页面做解密,这样就 ok 了。
前几天我比着这个思路写了这么一个项目,我已经将其部署在这里: https://hide-text.vercel.app/
欢迎大家去尝试一下,并提出意见。
我这个思路纯属于闭门造车,缺调研和探讨,不一定管用或好用,算是个抛砖引玉吧,期待有更好的思路。
1 iwh718 2022-08-21 06:17:06 +08:00 via Android 行政逛这个解密 base64 。 |
2 terence4444 2022-08-21 06:25:40 +08:00 via iPhone 还有一个方法是在原文中加入冗余字符再 base64 |
3 TigerJie 2022-08-21 06:36:33 +08:00 |
4 c6h6cl6 2022-08-21 07:32:07 +08:00 还不如把邮箱 reverse 一下。。。 |
5 DTCPSS 2022-08-21 07:58:04 +08:00 加盐 |
6 ZE3kr 2022-08-21 08:12:16 +08:00 via iPhone 别人解密了你的联系方式后,复制然后明文粘贴了出去,然后全都白搭 |
7 ZE3kr 2022-08-21 08:14:10 +08:00 via iPhone |
8 7zlid 2022-08-21 08:18:31 +08:00 via Android 自建图床 用完删了 |
9 yfugibr 2022-08-21 08:32:34 +08:00 via Android Bitwarden send ,可以控制可访问时间、次数、设置密码,还是挺好用的 |
10 PlG5sBkXD1ziLeGB 2022-08-21 08:37:40 +08:00 via iPhone hr 为什么要在网上找联系方式啊? |
11 Windelight 2022-08-21 09:06:38 +08:00 via Android 不去尝试直接使用 prontonmail |
12 hackpro 2022-08-21 09:16:23 +08:00 加入一个随机项就好了啊 比如今天的日期 |
13 foufoufm 2022-08-21 09:19:17 +08:00 这个需求可以翻译为, “有效期内的联系方式”,我是产品设计人员,对技术不太懂,如果仅针对于这个需求,类似于微信建群分享的二维码可以参考其技术。 一是图形化,不能通过文本识别 二是七日内有效期,当然这个时间你可以有效自定义 |
14 CharlesGray 2022-08-21 10:18:26 +08:00 不如 iCloud 隐藏电子邮箱地址。。。。或者 protonmail |
15 AllenHua 2022-08-21 10:28:22 +08:00 via iPhone seafile 或者 nexcloud 等自建云盘新建一个 markdown 文件,文件中相关隐私敏感信息,分享这个文件,设置过期日期,日期一过这个链接就不可达了。原理类似 bitwarden send ,但更加可控,因为还能提前销毁链接或者随时更改分享文件的内容,比如与 hr 联系,联系的目标已达成,也已决定去这家公司,不想再被其他公司 hr 打扰,就提前销毁链接。 |
16 whywaoxaks 2022-08-21 10:32:09 +08:00 微信二维码不就满足需求么。怎奈 v 站没人用微信。 |
17 AllenHua 2022-08-21 10:35:52 +08:00 |
18 allAboutDbmss 2022-08-21 10:37:38 +08:00 我个人觉得邮件明文也没有很大影响。大部分人都是展示邮箱地址在博客 提供交流方式的。 不管怎么加密 都存在一个可能: 别人解密之后 去把明文发出去。 我觉得大家 base64 也只是一个象征性方式,比如不能爬虫到明文。 |
19 AllenHua 2022-08-21 10:40:28 +08:00 再提一嘴,base64 那叫编码和解码 ( encode and decode ),不能说是加密与解密。 |
20 Osk 2022-08-21 10:48:50 +08:00 不如用在线的 pgp 工具, 大家交换公钥 |
21 B4PLpPSsR4voMdx0 2022-08-21 10:55:09 +08:00 固定的唯一对外 ID 就是罪魁祸首。 像 TG 这样可以修改对外 ID 的方式才是可以避免在互联网留下不可更改痕迹的方式。 |
22 wdssmq 2022-08-21 11:06:36 +08:00 base64 的意义在于,全世界的 base64 都是同一套机制,无论看到的人自己是不是懂这个。。 当你在编码时额外加了点什么的时候,解码时也必然要额外加东西,额外的这点东西就会成为解码方的负担,要提前准备好解码的工具,或者由发送方指定,可是不同的发送方指定的算法或工具不一样时就很蛋疼了。。 |
23 huntagain2008 2022-08-21 11:41:27 +08:00 小白想到给 cs:app 做过中文翻译的武大女教授提供邮件地址形如 tookatappledotcom 并没有用加密或编码,只是将"@"替换为"at"将“.”替换为“dot" |
25 hyyou2010 OP @AllenHua 这样的确很安全,我之前曾从网上笔记有期限地分享内容 @allAboutDbmss 别人可能搜 base64 后的密文 @whywaoxaks 二维码毕竟是图像,没有文字方便,还要扫码 @foufoufm 不是“有效期内的联系方式”,而是防止别人搜到我在别处的活动痕迹 @terence4444 我最开始设想的就是 base64 之后前后混淆字符,我现在这个其实就是是一回事,就是用随机数 xor 而已 |
26 hyyou2010 OP @huntagain2008 比如 took 是邮箱的个人标识吧,那么别人还是可能搜 took 而得到很多信息,如果她在其他地方也是这么留地址。 但按我这个思路是搜不到其他相关信息的,因为别处没有 took 这个关键字。 |
27 hyyou2010 OP @AllenHua 虽然通过分享文档的方式有效保护了你的联系方式,但你这个分享地址需每次都不同。如果不是,则别人搜你这个分享地址可以搜到你的活动范围,比如你在别处也留这个地址。而我这个思路则是针对这种情况,可以方便生成不同的链接地址。 |
28 AllenHua 2022-08-21 13:12:14 +08:00 @hyyou2010 #27 如果是我要分享我肯定分享不一样的地址(也就是每次创建不同的文件),每次和不同的人对话我会写不一样的文案。如果要求是一样的文案,用户博客的“关于我”页面或者“联系方式”页面可能会留下一些公开信息,比如邮箱。 |
29 AllenHua 2022-08-21 13:16:18 +08:00 我有管理 seafile share admin 页面的习惯,分享的 library 、folder 、单独的 link ,都会及时撤销访问。功能很强大,分享一整个库,整个文件夹,单独文件,甚至提供一个链接让别人上传他的文件存储到你的服务器。总之我觉得这货挺好用的。 |
30 lycc 2022-08-21 13:51:28 +08:00 那为啥不用些电子邮件转发功能 比如 cloudflare 的 电子邮件路由,每个地方留一个不一样的电邮,都转发到一个邮箱 |
31 lycc 2022-08-21 13:52:21 +08:00 @lycc 啊忘记写了,还有 https://relay.firefox.com/ 类似这样的 |
32 hyyou2010 OP 楼上两位说的这些方式功能的确强大,但操作起来略麻烦 |
33 dearmymy 2022-08-21 15:16:27 +08:00 你 base64 (联系方式-网站-今天日期)就够了 |
34 Felldeadbird 2022-08-21 15:55:57 +08:00 不如做个扩展,右键选中这对话,自动加盐 base64 更简单了。 |
35 ellermister 2022-08-21 16:04:35 +08:00 |
36 lEONiNv2 2022-08-21 16:07:23 +08:00 via iPhone 使用起来过于复杂,不如直接用图床,或者是单独建了一个自己的 contact 页面了 |
37 AllenHua 2022-08-21 16:07:43 +08:00 via iPhone 在各处留不同的字符串你怎么管理好呢?试用了你的服务我感觉还是文件管理服务器(比如 nextcloud)更具优势。 |
38 hyyou2010 OP @Felldeadbird 你的思路很好,不过这需要浏览器加扩展吧?可能很多人不会愿意。 @dearmymy 你说这个也可行,但对非技术人士而言,我觉得目前这个链接点击的思路是最简单的,base64 于他们也不容易。 |
39 ellermister 2022-08-21 16:08:41 +08:00 我自己分享东西时常关注的两点: 对于有审查的平台,我愿意被对方看到,但不愿意被平台看到。 对于无审查无所谓的平台,我可以分享明文,但在事件完成时,希望可以删除抹除来保护隐私。 对于以上的场景,我只能将我的方式作为第三方中间管道提供,用完时可以随时删除,因为所有权在我手里。 一旦信息交出去,主导权就在别人那边~说什么都没用。 |
40 hyyou2010 OP @ellermister 你这个似乎每次也生成不同的 url ,不过短 url 需要后台服务器保存原始信息吧? |
41 hyyou2010 OP |
42 ellermister 2022-08-21 16:17:54 +08:00 @hyyou2010 就是短链接,只是扩展了一些用途。 信息信息放到附加图文里,一般放服务器 SSH 信息、 操作教程。 每次不同的用途生成一个就好了,当然是需要服务器保存原始信息的(你可以自建) 分享后,都不会直截了当的被爬虫抓到隐私信息的, 后面还准备增加限制某些浏览器禁止访问,因为实际上很多 APP 内置浏览器都会有记录日志、和记录你的网页关键字的功能。 |
43 hyyou2010 OP @ellermister 你这个思路是很全面的安全,很重要的东西我也会如此,比如用 evernote 或 notion 做分享,并且是随机的短链接。 |
44 hyyou2010 OP @ellermister 如果你能针对短链接生成一个临时页面以显示明文的话,就完全覆盖了我这个小工具的功能。 不过短链接太短,本身不可能包含明文信息,所以你需要一个服务器,这个维持成本就略高了。我这个思路取巧在于明文信息就隐藏在这个 url 链接本身的字符串中,所以我这个工具是没有任何服务器的,只是一个带计算代码的静态页面而已。当然,也不能指望这个工具能做别的事情了。 |
45 ellermister 2022-08-21 17:04:38 +08:00 @hyyou2010 中间服务器要不了多少东西,你只是自用。 若考虑大规模推广用,没法实现,除非搞成协议的东西去推广,让客户端适配,那更难。 你若不想存储,不关心 URL 长度,也可以把简短信息内容加密存储起来并在展示时用 JS 解密,同时也可以做很多伪装的东西。 就是把我项目的伪装部分迁移到 J S ,存储部分迁移到 URL 而已。 |
46 southFlowFire 2022-08-21 17:44:09 +08:00 可以说是技术琢磨的入魔了,讲真,不如小号。 |
47 masker 2022-08-21 18:19:51 +08:00 via Android 不做亏心事,不怕鬼敲门。 |
48 Myprajna 2022-08-21 18:56:35 +08:00 如果有人真想人肉你,你也防不住的。 如果没人想弄你,属于自找麻烦。 我觉得不同网站用不同的用户名和头像差不多了。 |
49 aulayli 2022-08-21 19:15:46 +08:00 你的联系方式没那么重要 |
50 FrankAdler 2022-08-21 20:07:10 +08:00 via iPhone https://b64.ink/ 我已经做了一个,貌似没啥人用 |
51 YaakovZiv 2022-08-21 20:54:20 +08:00 我一般用 outlook 邮箱的邮箱别名,缺点是,只能 web 端用别名回复邮件,客户端只能用主邮箱回复。 |
53 hyyou2010 OP @FrankAdler 你这个很强,功能远远覆盖我这个小工具。你可以考虑一下推广,尤其在英文互联网的推广,那边圈子大且注重隐私。 我这个小工具的思路是无任何部署维护成本,用户操作也最简单,当然功能也很局限。 |
54 uni 2022-08-21 23:10:22 +08:00 @Windelight 这个邮箱据说最近把信息交给了法国政府了 我以后可能会更偏向于基于 web3 的隐私邮箱项目了 |
55 Felldeadbird 2022-08-21 23:29:24 +08:00 @hyyou2010 解密的人不需要安装扩展。在意信息敏感的才要安装。反正选中文字,然后右键选择 base 加盐。 自动粘贴到剪切板。 在需要的地方手动粘贴完成。解密的人一看就知道内容了。 例如:vx:zhangxiaolong 选中并 base 加盐,base 解密后得到就是 vx:zhangxiaolong 2022-08-21 |
56 hyyou2010 OP |
57 hyyou2010 OP |
58 FrankAdler 2022-08-22 05:32:56 +08:00 via iPhone @hyyou2010 懒得推广了,而且我也不熟英文互联网的圈子 |
59 yolee599 2022-08-22 08:49:34 +08:00 via Android base64 加盐起不到混淆的作用 |
60 thetbw 2022-08-22 09:12:23 +08:00 感觉有点脱裤子放屁,不如搞个页面,别人打开时候没有联系方式,只有几个跳转 qq,邮箱,电话的按钮,点击后根据浏览器环境判断是不是机器人,然后从服务器获取加密的数据解密,然后跳转到对应 app,可能微信这种有点无解了,其他应该都可以做到按钮跳转 |
61 947 2022-08-22 10:55:01 +08:00 我用的在线文档分享,不分享了把文档删除就行,每次都是不一样的链接,简单好用 |
62 wdssmq 2022-08-22 11:13:21 +08:00 @hyyou2010 #24 所以,如何「让」 v 站但又不仅仅只是 v 站在内的众多网站内置一个这样的加密功能???额外打开你的地址就是我说的负担。。这个工具就是你「定」的; 如果所有发送者指定的是同一个工具还好,,但是「凭什么」,XXXX 是最好的编程语言这种梗根源是什么你真的理解了? 这根本不是一个关于加密的技术问题,在有限群体内交流很容易统一一个可以比你的工具更安全的交流方式,但是现在面对的是不特定,数量也更多的「他人」 |
63 hyyou2010 OP @wdssmq 从操作上讲,base64 方案需要发布者和观看者都打开 base64 网址,而观看者很可能并不了解 base64 。 我这个方案是发布者需要打开网址来产生字符串,但是观看者只需要点击一次即可。观看者一定知道链接可点击,所以操作没有问题。总体上这个方案节约了观看者的操作及负担,不节约发布者。 如果想要发布者也不打开网址,那么可能需要浏览器加扩展,这个成本很高。 |
64 lchynn 2022-08-22 15:26:13 +08:00 把联系信息放在诸如阅后即焚的网站(如 privnote 等),然后粘贴阅后即焚的网站 link ; 被阅读或者时间过期后,这条信息自动删除。 |
65 qwq11 2022-08-22 18:13:02 +08:00 iCloud+、riseup 、Firefox Relay 完美解决你的问题 |
66 sillydaddy 2022-08-26 12:44:58 +08:00 想法挺好的,实现也简单。 |
67 xyjincan 2022-08-26 23:31:02 +08:00 via Android 这个网址可以销毁吗 |
69 RRyo 2022-08-29 08:58:30 +08:00 |
70 aoling 2022-08-29 10:29:07 +08:00 太把自己当回事了 谁稀罕你的联系方式呢 |
71 byasm32 2022-08-29 11:54:36 +08:00 这跟直接往数据库里明文插入联系方式和随机字符,用的时候通过随机字符查询取出来有啥区别?还要啥加密解密? |
72 yaeason 2022-08-30 09:53:29 +08:00 via Android @FrankAdler 挺好用,我试试 |
73 clorischan 2022-08-30 10:47:54 +08:00 其实都不需要用到第三方服务的 约定好一个对称加密算法 加解密的 security key 使用当前站点的域名 即可保证在不同页面留下的信息生成的密文不一致 并且 js 就可以直接获取当前页面的域名 引入插件即可实现自动加解密, 全部在浏览器本地完成, 无需依赖第三方服务 例如我在 v 站留的信息 security key 就使用 "v2ex.com" |
74 vAvyummyICE 2022-08-30 15:22:00 +08:00 via Android 阅后即焚? |
75 ddzzhen 229 天前 |