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

写了一个简单的行级加密 Demo

  •  
  •   lxy · 2016-09-19 13:56:11 +08:00 · 3073 次点击
    这是一个创建于 2991 天前的主题,其中的信息可能已经有所发展或是发生改变。

    源于之前的一个想法: https://www.v2ex.com/t/302466 ,可以用于加密文章、代码、日记、日志等(然后可以上传到 github...)。最近了解了一些加密相关的知识,花点时间写了个 demo : https://github.com/BlowingDust/SimpleRowLevelEncryption

    程序的目的在于,使得加密后的文本文件可用版本管理工具在行级范围内对其改动进行记录和跟踪。

    方法是,对文本的每行内容使用 AES 的 CFB 模式加密后再进行 base64 编码,并回写到原文件。

    比如使用随机生成的 256 位密钥

    N!{|R((S@>r_|+ESe1dvJm#]2zc,)Jt,
    

    加密以下内容(含换行)

    123abc
      中文中文
    
    换行了
    

    加密结果

    JiRtndCnC30phrx5+USf//6kBfaf8ps7qWg=
    GtC38Je1YRSxiz6tjkAkZb+gWppMxF7nUm5B+2rLkg==
    LyQAhYIaPRMYuP8aVDfq0Tg=
    Qt+Whg4aY+awHWKsF6jz4MrO8CKRhkYVYw==
    

    包括换行和空格在内的所有字符都会被加密。由于密钥复杂不便于记忆,预计后续会利用 RSA 对密钥进行加密,文件同步时忽略私钥。

    感觉也就这样了,应该没什么缺陷吧。

    2 条回复    2017-10-22 02:38:00 +08:00
    CHAOS187
        1
    CHAOS187  
       2016-09-19 18:24:10 +08:00
    感谢分享,一直没时间研究, Star 了 :D
    ji4ozhu
        2
    ji4ozhu  
       2017-10-22 02:38:00 +08:00
    有没有 C++的 Lib 或者 C++ 的源码啊。
    Python 完全看不懂哎
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:17 · PVG 03:17 · LAX 11:17 · JFK 14:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.