markot...@gmail.com writes:

> I fixed this problem but encountered new problem. Problem was that some parts 
> that came throug my decryption were 00 or 0 the first symbol so the program 
> didnt show them. 
>
> NEw problem is : Traceback (most recent call last):
>   File "C:\Users\Marko\Desktop\hacker.org\XOR cypher.py", line 35, in <module>
>     print("Key-" + str(võti) + ": " + str("".join(tulemus2)))
> TypeError: sequence item 0: expected str instance, bytes found
>
> If i  take away the join command i get this: Key-00000000: [b'u', b'o', 
> b'\x00', b'\x1d', b' ', b'|', b'N', b'\x0f', b'9', b'j', b'K', b'J', b'&', 
> b'#', b'A', b'K', b'5', b'k', b'_', b'\x1e', b',', b'j', b'\x0c', b'\x08', 
> b'i', b'(', b'\x06', b'\\', b'r', b'3', b'\x1f', b'V', b's', b'9', b'\x1d']
>
> the Key-00000000 is the key im using to decrypt the code. everything else is 
> generated byt the decrytion process and the unhexlify command. So my guess 
> is, the join command cant handle the b"u" type of format. how can i get rid 
> of the b.

Use b''.join(tulemus2), and then to convert it to a string you have to specify 
the encoding, which should be 'ascii', as you say it is ASCII.

str(b''.join(tulemus2), 'ascii')

or

b''.join(tulemus2).decode('ascii')

But note: If your tulemus2 contains bytes > 127 the this will fail as it is 
then not ASCII.
>
> Or does anyone have a better idea how to translate HEX into ASCII and
> sort out the lines that make sense

You can use base64.b16decode, but it needs a byte string as input. For the rest 
is is the same as unhexlify. And both will give you a byte string, because 
there is no way to translate a hex string to a character string without 
specifying an encoding (if there is hex > 7F it is no longer ASCII).

-- 
Piet van Oostrum <p...@vanoostrum.org>
WWW: http://pietvanoostrum.com/
PGP key: [8DAE142BE17999C4]
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to