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
File details
Details for the file humu1us-cipher-1.0.1.tar.gz
.
File metadata
- Download URL: humu1us-cipher-1.0.1.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fe735612bdf8e66b8442fdaf0b50799e12c1eab3a5add8d72b78b734deb4135 |
|
MD5 | 7601297f6377404994aa736d9ff99985 |
|
BLAKE2b-256 | f08fece44af5e674e1f43dbc1ef8a874fc958f417f0159324919f0350935b92e |
File details
Details for the file humu1us_cipher-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: humu1us_cipher-1.0.1-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2224bd76bd0480404461234cccfcfeefb263c54a056cffb2f8df74167e1e0d3 |
|
MD5 | b8386a60a2229167b7e8943d3928e6c1 |
|
BLAKE2b-256 | 67ef7dd359e887a3439a369757ec753272dc510824787c7e2fde0810e236bdab |