Tiziano Bettio wrote:
could someone please tell me that this thread wasn't a aprilsfoll day joke and it is for real...
i'm pretty much able to go down to a single bit but what would be the reverse algorithm as stated by martin...
magic?
I suggest running my script on a couple of small text files. when you've done that, see if you can figure out how the decompression algorithm works.
</F>
Tricky - especially checking the parity of the data bit, but I believe the following works:
def decompress(filename): m = '\x00\x00\x0fE\xc7\xc4' m = [(ord(i) & 0x7F) - (ord(i) & 0x80) for i in m]
filename, data = open(filename, "rb").read(), filename[:-4]
class Unfold(object): # Accumulator for partially unfolded data args = []
try: unfold = Unfold() data = "==".join([data,'\n']) compressed = [abs(data)] for fold in compressed: unfold.args.append(fold ** abs(fold)) except TypeError, unfold: # No more unfolds pass
decoder = __import__("".join(chr(ord(i)+j) for i, j in zip(unfold.args[0], m))).decodestring return decoder(data)
Michael
-- http://mail.python.org/mailman/listinfo/python-list