equal
deleted
inserted
replaced
23 |
23 |
24 from Crypto.Cipher import Blowfish |
24 from Crypto.Cipher import Blowfish |
25 |
25 |
26 |
26 |
27 _CYPHERERS = {} |
27 _CYPHERERS = {} |
|
28 |
|
29 |
28 def _cypherer(seed): |
30 def _cypherer(seed): |
29 if isinstance(seed, str): |
31 if isinstance(seed, str): |
30 seed = seed.encode('utf-8') |
32 seed = seed.encode('utf-8') |
31 try: |
33 try: |
32 return _CYPHERERS[seed] |
34 return _CYPHERERS[seed] |
35 return _CYPHERERS[seed] |
37 return _CYPHERERS[seed] |
36 |
38 |
37 |
39 |
38 def encrypt(data, seed): |
40 def encrypt(data, seed): |
39 string = pickle.dumps(data) |
41 string = pickle.dumps(data) |
40 string = string + '*' * (8 - len(string) % 8) |
42 string = string + b'*' * (8 - len(string) % 8) |
41 string = b64encode(_cypherer(seed).encrypt(string)) |
43 string = b64encode(_cypherer(seed).encrypt(string)) |
42 return str(string) |
44 return string.decode('utf-8') |
43 |
45 |
44 |
46 |
45 def decrypt(string, seed): |
47 def decrypt(string, seed): |
|
48 string = string.encode('utf-8') |
46 # pickle ignores trailing characters so we do not need to strip them off |
49 # pickle ignores trailing characters so we do not need to strip them off |
47 string = _cypherer(seed).decrypt(b64decode(string)) |
50 string = _cypherer(seed).decrypt(b64decode(string)) |
48 return pickle.loads(string) |
51 return pickle.loads(string) |