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

分享一个小工具,方便经常性地备份重要的小数据到邮箱

  •  
  •   liuidetmks · 2022-10-11 00:03:58 +08:00 · 2862 次点击
    这是一个创建于 797 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先前微软的两步验证软件把数据搞丢了,导致无法登录 bitwarden , 官方说法只能删除账号重新注册。 当时还暗自庆幸我有备份的习惯 ( encrypted json 格式)

    可是当我重新注册账号并导入数据的时候,提示我什么 encrypted key 不正确!!(可能我换过主密码吧

    我绝望的时候,忽然灵光一闪,有台 pc 上有数据,虽然不是最新的,但总比没有强,于是断网,登录电脑,导出明文。 然后再导入到新账号。

    于是就又了自己写了这个工具,把 bitwarden 导出的明文备份加密

    • 用的纯 js 实现,所有计算都在本地进行,zip 使用的 wasm
    • 每次备份的时候不需要输入备份密码
    • 只有解密才需要(用的椭圆曲线 Curve25519 )
    • 输入明文加密后,直接点击发送 email ,会使用 mailto 协议来打开默认邮件网站( gmail outlook 是 ok 的)发送 email 给自己邮箱

    js/浏览器的 module 搞的头大,直接再通过 type.d.ts 让编译通过了 直接合并 js ,有些太粗暴 :b


    测试 web

    密码短语是 白日依山尽

    输入明文,点击加密,然后选择 发送加密结果到邮件就行了

    解密的话输入 秘文的 base64 输入 密码短语,根据密码短语生成私钥

    解密就 ok 了

    另外问下,国内有免费的不需要备案的 page 吗

    18 条回复    2022-10-11 11:08:48 +08:00
    huyujievip
        1
    huyujievip  
       2022-10-11 00:10:35 +08:00 via iPhone
    直接在服务器端每天异地多地备份就行啦
    liuidetmks
        2
    liuidetmks  
    OP
       2022-10-11 00:13:42 +08:00 via iPhone
    @huyujievip 这不是没服务器嘛,有服务器就自建了。
    而且个人服务器稳定性肯定不如大厂的邮箱稳定吧
    securityCoding
        3
    securityCoding  
       2022-10-11 00:27:37 +08:00 via Android
    备份只推荐 nas ,你懂的
    SuperMild
        4
    SuperMild  
       2022-10-11 00:33:45 +08:00   ❤️ 1
    可以上传到 对象存储,一般有 10G 左右的免费额度,够用了。比邮箱好的地方是可以编程,方便管理,缺点是要花时间精力编程。我打算做一个类似这样的临时 /短期备份工具。
    FindHao
        5
    FindHao  
       2022-10-11 01:12:56 +08:00 via Android
    我一般都是直接在本地装 google drive ,重要的信息直接放进去。不重要的数据用定时执行 baidupcs-go 备份到百度网盘。
    aecra1
        6
    aecra1  
       2022-10-11 01:15:31 +08:00 via Android
    @SuperMild 有 sdk 直接调用就行,对象存储开启增量备份就 OK
    nuk
        7
    nuk  
       2022-10-11 01:36:26 +08:00
    不建议备份到 outlook ,丢邮件家常便饭,连 qq 邮箱都顶不上
    wizardyhnr
        8
    wizardyhnr  
       2022-10-11 05:59:15 +08:00
    gpg 公钥加密就行了,一行命令,至于存到哪看个人了。服务器端备份还是最方便。
    neptuno
        9
    neptuno  
       2022-10-11 08:34:41 +08:00 via iPhone
    @securityCoding #3 虽然我也有 nas ,但 nas 如果挂了不就全没了,这就好比钱包丢了一样。我现在方法是 nas 里面重要文件再定时加密上传网盘
    SuperXX
        10
    SuperXX  
       2022-10-11 08:36:26 +08:00
    @liuidetmks dropbox 之类的免费存储 应该可以
    chrawsl
        11
    chrawsl  
       2022-10-11 09:32:39 +08:00
    https://github.com/chr233/backup_by_mail

    刚学 Python 的时候摸的任意文件上传 QQ 邮箱的脚本,支持自动切分大文件
    moioooo
        12
    moioooo  
       2022-10-11 09:33:03 +08:00
    明文导出,然后 rar 加密一遍,存同步网盘上。
    理论上被破解的概率比我自己弄丢了概率小的多
    liuidetmks
        13
    liuidetmks  
    OP
       2022-10-11 09:39:55 +08:00
    @moioooo 我感觉这个比较麻烦,一来每次需要打开 rar 输入密码,还要防止输错,每次备份的密码要一样

    这个工具只需要生成书签,把公钥信息存在链接里就行了,只需要鼠标点点点就能操作了。
    tool2d
        14
    tool2d  
       2022-10-11 10:13:39 +08:00
    虽然用不上,但是感觉挺有意思的。

    你用 AES-CBC 加密,这算法实在是太老了。可以考虑替换成 google 发明的 CHACHA20_POLY1305 加密算法,运行速度快多了。
    cmdOptionKana
        15
    cmdOptionKana  
       2022-10-11 10:18:53 +08:00
    @tool2d CHACHA20_POLY1305 虽然快,但 AES 很可能支持硬件加速。
    tool2d
        16
    tool2d  
       2022-10-11 10:28:10 +08:00
    @cmdOptionKana 这倒是真的,如果是硬件指令,那肯定快的。
    liuidetmks
        17
    liuidetmks  
    OP
       2022-10-11 10:41:02 +08:00
    @tool2d @tool2d chaccha salsa x25519 这些都是 D. J. Bernstein 发明的吧,并不少谷歌,只是他在推广。

    本来想用 salsa 的,实现简单安全性高,js 会很小。
    但是后来发现浏览器有个 webcrypto api 的东西,里面只有 aes 算法,(浏览器实现应该是会有硬件加速的吧?)
    所以就用了 aes ,不用引入第三方 js 了。

    至于用 x25519 不用 webcrypt 自带的曲线(这样又能节约一个 js )

    因为以前 mac 上弄了个工具,使用的是 libsodium ,为了格式兼容。
    duke807
        18
    duke807  
       2022-10-11 11:08:48 +08:00
    我的密码直接存到 draft 邮件,邮箱密码不泄漏就行

    更敏感的内容,我会用这个更通用的 開源 免安裝 加密小工具 CDEncrypt
    https://www.v2ex.com/t/832302
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4906 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:37 · PVG 17:37 · LAX 01:37 · JFK 04:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.