The Style of Encryption has been changed in version 3.1.0, due to a bug present in the previous version. If you have data encrypted with versions <= 3.1.0, you may need to re-encrypt them to use the new versions of the library. This change does not affect new users, and we apologise for the inconvenience caused.
Note: EntX Encryption will store all keys and values as strings. If you plan on running operations on integers/floats in your data, convert them with int() or float() before use.
import os
import entx
client = entx.Client(os.environ["password"])
import os
import entx
client = entx.Client(os.environ["password"])
to_encrypt = "This will be encrypted"
encrypted = client.encrypt(to_encrypt)
import os
import entx
client = entx.Client(os.environ["password"])
to_decrypt = "This will be decrypted"
encrypted = client.decrypt(to_decrypt)
EntX supports JSON reading and writing, allowing you to store and read dictionaries in the .json format, automatically encrypting and decrypting the data with the password provided.
To store values as a JSON with encryption only applying to the values, pass in the keyword parameter encrypt_output = False
to the dumps and dump functions. If this is not passed or set to True
, the json will be encrypted before writing and only readable using the EntX JSONClient.
To read values from a JSON with encryption only applying to the values, pass in the keyword parameter encrypted_input = False
to the load and loads functions. If this is not passed or set to True
, the client will attempt to decrypt the json before converting it to an object, throwing an error if the json is not encrypted or the password provided is incorrect.
It is recommended that you encrypt your output json to increase the strength of the output's encryption.
import os
from entx.storage import JSONClient
client = JSONClient(os.environ["password"])
import os
from entx.storage import JSONClient
client = JSONClient(os.environ["password"])
to_encrypt_dictionary = {"keys": "values"}
dictionary_json_string = client.dumps(to_encrypt_dictionary)
import os
from entx.storage import JSONClient
client = JSONClient(os.environ["password"])
to_encrypt_dictionary = {"keys": "values"}
with open("demo.json", "w") as output_file:
client.dump(to_encrypt_dictionary, output_file)
import os
from entx.storage import JSONClient
client = JSONClient(os.environ["password"])
encrypted_json_string = "your string here"
decrypted_dictionary = client.loads(encrypted_json_string)
import os
from entx.storage import JSONClient
client = JSONClient(os.environ["password"])
with open("demo.json", "r") as input_file:
decrypted_dictionary = client.load(input_file)
Raised when the password provided for a client file is invalid. Often raised when trying to load from a file with an incorrect password.
As of Version 3.0.0, EntX now comes with the users module to manager users and their data. All user files are encrypted using the user password, and can be stored in any relative directory.
from entx.users import User
user = User.new_user("username", "password", "users")
from entx.users import User
user = User.login("username", "password", "users")
from entx.users import User
user = User.login("username", "password", "users")
data = user.obj
print(data)
from entx.users import User
user = User.login("username", "password", "users")
user.obj["new_field"] = "field contents"
user.update()
Raised when you are trying to create a new user in a directory where a user with that username already exists.
Raised when you are trying to log in to a user that doesn't exist.'
Raised when the password provided for a user is invalid.