Hola!
El string
UGFzc3dvcmQ6IHhvFzYMACEfBiAgIA== decodeado es:
'Password: xo\x176\x0c\x00!\x1f\x06 ' (sin las comillas simples)
Esto muestra que se encodeó la cadena 'Password: ' y a continuación se pusieron los bytes que se deberian XORear (segun lo que has dicho).
Si tomamos desde la 'x' hasta el ultimo, que es un espacio, el largo de ese string es de 12 caracteres.
Ahora, la clave que has dado ('encryptXOR') tiene 10 caracteres.
Haciendo un XOR 1 a 1, aplicariamos la key a los primeros 10 bytes (ignorando los ultimos 2 que son espacios).
Esto revuelve el string: '\x1d\x01tDupUGIr'
Notar que lo que comienza con '\x' es el valor hexa del caracter. Normalmente se coloca asi cuando es un caracter no imprimible.
El codigo que use para decodear es este:
import base64
def main():
data = 'UGFzc3dvcmQ6IHhvFzYMACEfBiAgIA=='
datadec = base64.b64decode(data)
datadec = datadec[10:]
print repr(datadec)
key = 'encryptXOR'
ret = ''
for i in range(len(key)):
ret += chr(ord(datadec[i]) ^ ord(key[i]))
print repr(ret)
if __name__ == '__main__':
main()
Por supuesto, esa string devuelta no tiene mucho sentido para mi, asi que debe estar usandose otro tipo de encriptacion, o bien, la key es incorrecta.
Puedes hacer un analisis criptografico sobre el texto cifrado con XOR usando Cryptool; pero vas a tener que investigar sobre el misma.
Saludos!
Ok muchas gracias investigaré sobre el tema más a fondo a ver si consigo resolverlo.
En cuanto consiga resolverlo pongo como lo haga y lo damos por resuelto.
En cuanto a una duda mía acerca de esto es : ¿Es usual encontrar este codificado? Puesto que en internet no viene mucha información.