Encrypt python source code and import module dynamically.
Project description
pyencrypt-pye
encrypt python source code and import module dynamically.
_
_ __ _ _ ___ _ __ ___ _ __ _ _ _ __ | |_
| '_ \| | | |/ _ \ '_ \ / __| '__| | | | '_ \| __|
| |_) | |_| | __/ | | | (__| | | |_| | |_) | |_
| .__/ \__, |\___|_| |_|\___|_| \__, | .__/ \__|
|_| |___/ |___/|_|
encrypt python source code and import dynamically.
VERSION 0.3.0
How to do
https://github.com/ZhaoQi99/pyencrypt-pye/wiki#how-to-do
Install
pip install pyencrypt-pye
✨🍰✨
Or you can use pip install git+https://github.com/ZhaoQi99/pyencrypt-pye.git
install latest version.
Usage
Usage: pyencrypt [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
-h, --help Show this message and exit.
Commands:
decrypt Decrypt encrypted pye file
encrypt Encrypt your python code
generate Generate loader file using specified key
license Generate license file using specified key
Encrypt
~$ pyencrypt encrypt -h
Usage: pyencrypt encrypt [OPTIONS] PATHNAME
Encrypt your python code
Options:
-i, --in-place make changes to files in place
-k, --key 🔑 Your encryption key.If you don‘t specify
key, pyencrypt will generate encryption key
randomly.
--with-license Add license to encrypted file
-m, --bind-mac 01:23:45:67:89:AB
Bind mac address to encrypted file
-4, --bind-ipv4 192.168.0.1 Bind ipv4 address to encrypted file
-b, --before [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
License is invalid before this date.
-a, --after [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
License is invalid after this date.
-y, --yes Automatically answer yes for confirm
questions.
-h, --help Show this message and exit.
Entry File
In your entry file, you must import loader
firstly, and then you can import encrypted modules as usual.
import loader
from test import *
Decrypt
~$ pyencrypt decrypt -h
Usage: pyencrypt decrypt [OPTIONS] PATHNAME
Decrypt encrypted pye file
Options:
-i, --in-place make changes to files in place
-k, --key 🔑 Your encryption key. [required]
-h, --help Show this message and exit.
Generate
~$ pyencrypt generate -h
Usage: pyencrypt generate [OPTIONS]
Generate loader file using specified key
Options:
-k, --key 🔑 Your encryption key. [required]
-h, --help Show this message and exit.
License
pyencrypt's loader will search for the license file in the following manner:
-
~/.licenses/license.lic
file in your home directory. -
licenses/license.lic
file inloader
file's directory. -
licenses/license.lic
file in the current working directory.
~$ pyencrypt license -h
Usage: pyencrypt license [OPTIONS]
Generate license file using specified key
Options:
-h, --help Show this message and exit.
-k, --key 🔑 Your encryption key. [required]
-m, --bind-mac 01:23:45:67:89:AB
Bind mac address to encrypted file
-4, --bind-ipv4 192.168.0.1 Bind ipv4 address to encrypted file
-b, --before [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
License is invalid before this date.
-a, --after [%Y-%m-%dT%H:%M:%S %z|%Y-%m-%d %H:%M:%S|%Y-%m-%d]
License is invalid after this date.
Shell Completion
Bash
Add this to ~/.bashrc:eval "$(_PYENCRYPT_COMPLETE=bash_source pyencrypt)"
Zsh
Add this to ~/.zshrc:eval "$(_PYENCRYPT_COMPLETE=zsh_source pyencrypt)"
Fish
Add this to ~/.config/fish/completions/foo-bar.fish:eval (env _PYENCRYPT_COMPLETE=fish_source pyencrypt)
Example
Encrypt
~$ pyencrypt encrypt --in-place -y test.py
~$ pyencrypt encrypt test/
~$ pyencrypt encrypt test.py -y --with-license\
--before="2000-01-01T00:00:00 +0800" --after="2030-01-01T00:00:00 +0800"\
--bind-mac="AC:DE:48:00:11:22" --bind-ipv4="192.168.0.1"
Decrypt
~$ pyencrypt decrypt -k xxx test.pye
Generate
~$ pyencrypt generate -k xxx
License
~$ pyencrypt license -k xxx\
--before="2000-01-01T00:00:00 +0800" --after="2030-01-01T00:00:00 +0800"\
--bind-mac="AC:DE:48:00:11:22" --bind-ipv4="192.168.0.1"
Development
Format Code
black pyencrypt
isort pyencrypt
License
GNU General Public License v3.0
Author
- Qi Zhao(zhaoqi99@outlook.com)
Project details
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 pyencrypt_pye-0.3.0.tar.gz
.
File metadata
- Download URL: pyencrypt_pye-0.3.0.tar.gz
- Upload date:
- Size: 45.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4aef1ea12f414e86b53ecf99f84b1cf50bc5f293fb767dda8380fc5ba2aaa4ee |
|
MD5 | 30013a55a7377369b325e5f70c6784aa |
|
BLAKE2b-256 | cc63192e8fd5be66dcefe75270417516f96c64c9a3896d8b2208c74200dd0eaf |
File details
Details for the file pyencrypt_pye-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: pyencrypt_pye-0.3.0-py3-none-any.whl
- Upload date:
- Size: 41.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eca3da836d3821e5d88dd0376bffa097fd903310abc0c64fb317c9f4854d9d2e |
|
MD5 | f4451bb0e30eb56847f8d73e47b9a4bc |
|
BLAKE2b-256 | 68b4c770ad5c20b9f71617f5a4762e0cf0f812caeb6bd235f1024fa4cca04cf7 |