Я использую AES (от PyCrypto) для шифрования паролей и сохранения его в файле. Формат файла:Хранение и чтение зашифрованных строк из файла в Python
user:username
key:<encrypted key>
И это метод, который я использовал для шифрования:
BLOCK_SIZE = ..
PADDING = ..
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
cipher = AES.new("abcdefgh12345678")
encrypted_key = EncodeAES(cipher, 'ABC123')
Теперь, как я прочитал ключ из файла для расшифровки? Если я использую line.split (":"), не может ли это вызвать проблему, если сам зашифрованный ключ имел «:» как символ?
Есть ли способ избежать «:» при шифровании? Или есть лучший способ хранения ключей? Я не могу использовать хэширование, поскольку мне нужен ключ для некоторых других функций. Благодарю.
О, это так.Извините, я этого не осознавал. Недостаток сна. Благодарю. – drunkenfist