Encryption/decryption library
Project description
Encryption and decryption tools. Cipher mix AES encryption with base64 encode generating plain text encrypted files.
Usage
variables:
>>> import cipher
>>> cipher.encrypt("encryption_password", "something to encrypt!")
'WDJoMWJYVXhkWE5mWlc1algxOGNSc2hFT1o2ZGRBOGhoWnByQjYzZnZBYlp3N2ZKZmVDTEw2V1ZEMWlhZ0ZyZDVpSnpVZDll'
>>> import cipher
>>> encrypted = cipher.encrypt("encryption_password", "something to encrypt!")
>>> cipher.decrypt("encryption_password", encrypted)
'something to encrypt!'
files:
>>> import cipher
>>> txt = "file content to encrypt!"
>>> cipher.write("/tmp/file.encrypted", "encryption_password", txt)
>>> import cipher
>>> cipher.read("/tmp/file.encrypted", "encryption_password")
'file content to encrypt!'
A Credentials class can be used to handle secrets stored in JSON formats:
>>> import json
>>> secrets = {
... "db_dsn": "mysql://user:pass@host:port/dbname",
... "api_token": "some token"
... }
>>> cipher.write("/tmp/secrets", "encryption_password", json.dumps(secrets))
>>>
>>> # so, in your app you can do something like this:
>>> import cipher
>>> cred = cipher.Credentials("/tmp/secrets", "encryption_password")
>>> cred.db_dsn
'mysql://user:pass@host:port/dbname'
>>> cred.api_token
'some token'
Generating keys
There are a lot of ways to create keys but a good easy to use way to create non-easy to remember keys is using /dev/urandom, almost on Unix systems. For example:
dd if=/dev/urandom bs=16 count=1 | base64 > /path/to/key_file
The count parameter is the number of blocks to read and write, while the bs parameter is the size of each block.
CLI
There is also available a nice command line. Just install cipher and start using it! $ ciphercmd -v will let you know it is ready to be used.
Installation
PyPi:
$ pip install humu1us-cipher
Development version:
$ git clone git@github.com:humu1us/cipher.git $ cd cipher $ pip install -e .
Contribution
Contributions are welcome! Feel free to report bugs or open an issue if you feel a new feature is needed. Pull requests are welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for humu1us_cipher-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2224bd76bd0480404461234cccfcfeefb263c54a056cffb2f8df74167e1e0d3 |
|
MD5 | b8386a60a2229167b7e8943d3928e6c1 |
|
BLAKE2b-256 | 67ef7dd359e887a3439a369757ec753272dc510824787c7e2fde0810e236bdab |