make encrypted string shorter
This commit is contained in:
parent
27e16e5e2c
commit
5fa4272484
|
@ -3,10 +3,11 @@ from app.utils.misc import read_config_bool
|
||||||
from flask import current_app
|
from flask import current_app
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
from base64 import urlsafe_b64encode
|
from base64 import urlsafe_b64encode, urlsafe_b64decode
|
||||||
import pickle
|
import pickle
|
||||||
from cryptography.fernet import Fernet
|
from cryptography.fernet import Fernet
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import brotli
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
|
@ -138,10 +139,9 @@ class Config:
|
||||||
|
|
||||||
if param_val == 'off':
|
if param_val == 'off':
|
||||||
param_val = False
|
param_val = False
|
||||||
elif isinstance(param_val, bool):
|
elif isinstance(param_val, str):
|
||||||
pass
|
if param_val.isdigit():
|
||||||
elif param_val.isdigit():
|
param_val = int(param_val)
|
||||||
param_val = int(param_val)
|
|
||||||
|
|
||||||
self[param_key] = param_val
|
self[param_key] = param_val
|
||||||
return self
|
return self
|
||||||
|
@ -168,15 +168,22 @@ class Config:
|
||||||
def _encode_preferences(self) -> str:
|
def _encode_preferences(self) -> str:
|
||||||
if self.preferences_key == '':
|
if self.preferences_key == '':
|
||||||
return ''
|
return ''
|
||||||
encoded_preferences = pickle.dumps(self.get_attrs())
|
encoded_preferences = brotli.compress(pickle.dumps(self.get_attrs()))
|
||||||
key = self._get_fernet_key(self.preferences_key)
|
key = self._get_fernet_key(self.preferences_key)
|
||||||
return Fernet(key).encrypt(encoded_preferences).decode()
|
encrypted_preferences = Fernet(key).encrypt(encoded_preferences)
|
||||||
|
return urlsafe_b64encode(
|
||||||
|
brotli.compress(encrypted_preferences)
|
||||||
|
).decode()
|
||||||
|
|
||||||
def _decode_preferences(self, preferences: str) -> dict:
|
def _decode_preferences(self, preferences: str) -> dict:
|
||||||
try:
|
try:
|
||||||
key = self._get_fernet_key(self.preferences_key)
|
key = self._get_fernet_key(self.preferences_key)
|
||||||
config = Fernet(key).decrypt(preferences.encode())
|
|
||||||
config = pickle.loads(config)
|
config = Fernet(key).decrypt(
|
||||||
|
brotli.decompress(urlsafe_b64decode(preferences.encode()))
|
||||||
|
)
|
||||||
|
|
||||||
|
config = pickle.loads(brotli.decompress(config))
|
||||||
except Exception:
|
except Exception:
|
||||||
config = {}
|
config = {}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user