Forked from
DM / dm-docs
261 commits behind, 679 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
encoder.py 1.05 KiB
#!/usr/bin/env python
import base64
class Encoder:
@classmethod
def encode(cls, data):
# Encode twice, in order to avoid issues like '+' being
# interpreted as space after decoding
encodedData = base64.b64encode(base64.encodestring('%s' % data))
return encodedData
@classmethod
def decode(cls, encodedData):
data = base64.decodestring(base64.b64decode('%s' % encodedData))
return data
@classmethod
def encodeDict(cls, dict, excludedKeyList=[]):
encodedDict = {}
for (key,value) in dict.items():
if key not in excludedKeyList:
encodedDict[key] = cls.encode(value)
else:
encodedDict[key] = value
return encodedDict
@classmethod
def decodeDict(cls, encodedDict, excludedKeyList=[]):
dict = {}
for (key,value) in encodedDict.items():
if key not in excludedKeyList:
dict[key] = cls.decode(value)
else:
dict[key] = value
return dict