个人加密文件存储、备份和共享

Billabong的Python项目详细描述


billabong项目旨在提供可靠且加密的 存储和备份大型文件的解决方案 可编辑,如照片、视频和录音。

使用billabong存档文件,并将其配置为存储 在不同的机器上有多个文件副本。文件已加密 它们的内容可以被验证,因此您可以使用不受信任的计算机 额外的存储空间。

安装

使用pip:

安装billabong及其主要依赖项
$ pip install billabong

默认情况下没有命令行界面,但是您可以很容易地定义 一个有别名:

$ alias bong="python3 -m billabong"

用法

Usage: bong COMMAND <options>

Available commands:
 add      Import one or several files and print resulting records.
 backup   Copy the inventory into a encrypted file on a remote system.
 blobs    List all blob ids from the first storage.
 check    Check the validity of all blobs and metadata.
 echo     Print blob content to standard output for the given record id.
 info     Print record content from one or several record ids.
 ls       List short records ids with filename from the inventory.
 mount    Mount data as a filesystem.
 pull     Pull blobs from sync storage.
 push     Push blobs to sync storage.
 records  List all records ids from the inventory.
 search   Search for the given term and return id of records matching the term.
 status   Print a global status of the inventory and storage.
 tags     List all tags from the inventory.
 version  Print software version.

Use 'bong <command> --help' for individual command help.

状态

数据存储的格式非常可靠,应该保持 与未来版本兼容。

关于软件本身,它仍在开发中。核心 它本身正在形成一个稳定的结构,现在大部分的努力都花在 改进接口,更好地处理元数据和扩展 存储选项。

数据存储

billabong区分文件的内容( data)和文件的描述(即meta data)。当你添加 一个文件,生成一个随机密钥,并用于加密 使用AES-CTR的文件内容。然后把钥匙分开存放, 以及其他元数据,如 原始数据、加密数据的哈希、文件名及其 大小。

下面是测试软件时使用的元数据示例:

{"timestamp":"2015-08-24T21:23:18.397957","hash":"sha256-fc7d4f43945d94c874415e3bd9a6e181f8c84f8a36f586389405e391c01e48b2","info":{"filename":"hello.txt","type":"ASCII text","tags":[],"path":"hello.txt","mimetype":"text/plain"},"id":"b6a9fb49bcf54d43850d7b76182c9389","blob":"87686a1e7d089c9cd63f52d90a3ea9745e587c310339b2b54329119e93a4e669","key":"BT9dRpzUL+H39pFnVU2S8O1PyUEy6yq5zrYM2s2EvAE=","size":15}

元数据在inventory中保持安全,同时加密 文件可以自由复制或移动到其他计算机。

TravisCI build Status

Travisci生成状态

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX触控事件未触发Ubuntu 20.04触控笔记本电脑   java如何在AWT中关闭窗口?   java Dagger 2:注入具有构造函数参数的成员   创建对象的Java调用类   对象我想在A.java中添加两个数字,并在B.java中打印结果(如何?)   java如何使用AWS SDK for Android从数字海洋空间下载图像?   java Facebook sdk 4.0.1无法使用Android studio获取某些字段   4分钟后web应用程序(Angular 8和Rest API)中的java自动会话超时   在Eclipse for Java EE developers edition中禁用HTML警告   java按字母顺序排列字符串我错过了什么明显的东西吗?   java在Jshell中println和printf有什么不同