Skip to content

A tool for avoiding write sensitive data directly in code

License

Notifications You must be signed in to change notification settings

RedForestLonvor/cryptwood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English badge 简体中文 badge

用于保护隐私数据的加密工具

安装

可以使用pip安装:

python3 -m pip install cryptwood

概述

通过这个工具,可以快速的序列化一个python对象并对其进行加密,然后存储在 与项目目录下。这时,就可以将存在于代码中的对象删除。在希望使用这个对象 的时候只需要解密并反序列化即可。

通过这样的方式,可以避免敏感信息(或者是一切不希望别人看到的信息)不用直接出现在 代码中,也不用明文出现在项目文件中。

被序列化并加密的对象可以是任何类型,包括自定义的类。如果使用自定义类的对象, 在解密时需要保证类存在。

这个这个工具使用了AES256算法对数据进行对称加密。 加密过程中随机产生秘钥和初始向量。 这些文件将被存储在~/.cryptUserDataKey中。

此工具会在项目目录下创建config.ini(如果此文件存在则会直接使用)文件。并在此文件中保存keyiv的存储位置。

使用场景

 当你需要向同学,老师等人展示项目或交作业时(或者仅仅为了安全),使用此工具加密你的信息。 比如加密你的数据库username,passwd,host等信息。

 当你需要向客户展示项目时,使用此工具加密一个关键的对象, 使这个项目只能在你的电脑,或者只有你进行授权以后才能运行。

函数

  • cryptwood.dataCrypter.encrypt(object):
    加密object对象并在代码目录下生成加密过的序列化文件.cryptUserData,没有返回值。
    生成的keyiv文件存储在~/.cryptUserData文件夹下。文件名为调用此工具的代码 所在位置的上级目录+"key"或"iv"。
  • cryptwood.dataCrypter.decrypt(): 解密.cryptUserData并反序列化,返回一个对象。
  • cryptwood.setPath(rowCustomPath): 用户可以设置keyiv的存储位置。注意的是:rowCustomPath必须是准确的路径, 也就是说'/'一类的特殊字符必须被转义,也就是写成'//'。或者使用r"..."将字符串修饰为row的。
  • cryptwood.getCustomPath(): 允许用户查询keyiv的存储位置。

TODO

  • 提供使用sshkeyiv保存在远程服务器的方法,以便于更高的安全性,以及作者 向用户提供实时的代码授权以保护作者权益。
  • 提供同时间加密多个类的方法
  • 提供将keyiv存储在数据库中的方法以便于更高的安全性,以及作者 向用户提供实时的代码授权以保护作者权益。

About

A tool for avoiding write sensitive data directly in code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages