Ich bin sehr neu in der Verschlüsselung, ich muss eine einfache Zeichenfolge wie 'ABC123'
in etwas ähnlich zu dem '3d3cf25845f3aae505bafbc1c8f16d0bfdea7d70f6b141c21726da8d'
codieren.wie eine einfache Zeichenfolge zu codieren/zu decodieren
Ich versuchte zunächst, dies:
>>> import base64
>>> q = 'ABC123'
>>> w = base64.encodestring(q)
>>> w
'QUJDMTIz\n'
Aber es ist zu kurz, ich etwas länger brauchen, als ich dies versucht:
>>> import hashlib
>>> a = hashlib.sha224(q)
>>> a.hexdigest()
'3d3cf25845f3aae505bafbc1c8f16d0bfdea7d70f6b141c21726da8d'
Das ist gut, aber jetzt weiß ich nicht, wie um es zurück zu konvertieren. Wenn jemand mir helfen kann, mit diesem Beispiel zu beginnen oder etwas anderes vorzuschlagen, wie ich eine kleine Schnur in etwas länger kodieren/decodieren könnte, wäre das großartig.
UPDATE
basierend auf plockc
Antwort habe ich dies, und es scheint zu funktionieren:
from Crypto.Cipher import AES # encryption library
BLOCK_SIZE = 32
# the character used for padding--with a block cipher such as AES, the value
# you encrypt must be a multiple of BLOCK_SIZE in length. This character is
# used to ensure that your value is always a multiple of BLOCK_SIZE
PADDING = '{'
# one-liner to sufficiently pad the text to be encrypted
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
# one-liners to encrypt/encode and decrypt/decode a string
# encrypt with AES, encode with base64
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
# create a cipher object using the random secret
cipher = AES.new('aaaaaaaaaa123456')
# encode a string
encoded = EncodeAES(cipher, 'ABC123')
print 'Encrypted string: %s' % encoded
# decode the encoded string
decoded = DecodeAES(cipher, encoded)
print 'Decrypted string: %s' % decoded
Das ist nicht, was ein Hash bedeutet. – SLaks
Sicherheit ist _hard_. Welches Szenario versuchst du zu verteidigen? – SLaks
Ich muss eine Konto-ID in etwas länger kodieren und es dann entschlüsseln, wenn ich es brauche. – Vor