[Tutor] binary, ascii, steganography
Steven D'Aprano
steve at pearwood.info
Fri Mar 18 12:16:39 CET 2011
jaco erasmus wrote:
> Baby steps, first, though. For the moment, I just want to compare 2 text
> files, have similar letters give me 0 and different letters give me 1. I
> want to take those and turn them into letters. How would I do that?
The basic algorithm is:
1 Read one file into text1
2 Read second file into text2
3 Iterate over both together, taking one character from each
4 If first character == second character then bit = 0
else bit = 1
5 Collect 8 bits and put them together to a number between 0 and 255
6 Convert that number to a character
In Python, here's an outline:
text1 = open('file1').read()
text2 = open('file2').read()
characters = []
bits = []
for c1, c2 in zip(text1, text2):
if c1 == c2:
bits.append(1)
else:
bits.append(0)
if len(bits) == 8:
characters.append(bits_to_character(bits))
bits = []
print ''.join(characters)
The tricky bit is the function bits_to_character(), which should take a
list of eight numbers 0 or 1, and return a character. Try writing that,
and email back if you have trouble.
--
Steven
More information about the Tutor
mailing list