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

uu 们,如何用 Python 或者 go 语言使用 rsa 算法实现对于文件的加密和解密

  •  
  •   hytirrb · 2023-12-16 13:15:05 +08:00 · 2288 次点击
    这是一个创建于 377 天前的主题,其中的信息可能已经有所发展或是发生改变。

    uu 们,如何用 python 或者 go 语言实现对于文件的加密和解密,有啥推荐教程嘛,就是比较入门的那种,对于普通文件那么加密整个文件,对于视频文件可以使用对称密钥加密视频,然后使用 rsa 算法对程序进行加密和解密

    11 条回复    2023-12-18 01:28:38 +08:00
    SunsetShimmer
        1
    SunsetShimmer  
       2023-12-16 13:24:27 +08:00 via Android
    调库就可以了吧 https://pypi.org/project/pycryptodome/

    如果只想用一个密码来加密,没必要用非对称吧?
    DefoliationM
        2
    DefoliationM  
       2023-12-16 13:37:37 +08:00 via Android
    非对称加密只能加密长度较短的东西,所以一般只用来签名,大型文件还是对称加密吧,可以稍微了解一点密码学相关的知识。
    mohumohu
        3
    mohumohu  
       2023-12-16 14:03:30 +08:00
    非对称加密一般用于交换传输对称密钥,而实际内容加密一般是对称的,比如 aes 。
    body007
        4
    body007  
       2023-12-16 16:33:39 +08:00
    推荐: https://github.com/jan-bar/EncryptionFile

    你只需要保存好私钥不要泄露就行,公钥加密文件,私钥解密文件。
    hytirrb
        5
    hytirrb  
    OP
       2023-12-16 16:48:48 +08:00
    好好好,谢谢各位 uu 们
    hytirrb
        6
    hytirrb  
    OP
       2023-12-16 17:20:39 +08:00
    @body007 谢谢 uu 哈
    kenvix
        7
    kenvix  
       2023-12-16 19:07:53 +08:00 via Android
    非对称加密最好使用混合加密的方式实现。也就是每个文件的文件本体采用对称加密,对称加密的密钥每次都是随机的。再使用非对称加密保护密钥。


    @DefoliationM 混合加密就行了
    1145148964
        8
    1145148964  
       2023-12-16 19:10:13 +08:00
    bitlocker
    neoblackcap
        9
    neoblackcap  
       2023-12-17 00:36:30 +08:00
    非对称的加解密成本高,一般不会对较长的数据进行加密。一般都是非对称加密对称加密过程的密钥,然后明文再通过对称加密,并传输。
    实际上你这个流程,有点像 TLS/SSL ,如果需要进行网络传输的话,优先使用这些方式,而不是自己重新实现。
    CEBBCAT
        10
    CEBBCAT  
       2023-12-17 02:04:11 +08:00 via iPhone
    提问前最好问一下 GPT ,同时英文 Google 一下,找不到答案再发帖
    humbass
        11
    humbass  
       2023-12-18 01:28:38 +08:00 via Android
    重点就是将磁盘上的文件以流的形势读出,然后 RSA 后写入磁盘。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1658 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:45 · PVG 00:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.