lightweight encryption of text file

Daniel Fetchinson fetchinson at googlemail.com
Fri Jan 8 16:47:26 EST 2010


>>> I have a plain text file which I would like to protect in a very
>>> simple minded, yet for my purposes sufficient, way. I'd like to
>>> encrypt/convert it into a binary file in such a way that possession of
>>> a password allows anyone to convert it back into the original text
>>> file while not possessing the password one would only see the
>>> following with the standard linux utility 'file':
>>>
>>> [fetchinson at fetch ~]$ file encrypted.data
>>> encrypted.data: data
>>>
>>> and the effort required to convert the file back to the original text
>>> file without the password would be equivalent to guessing the
>>> password.
>>>
>>> I'm fully aware of the security implications of this loose
>>> specification, but for my purposes this would be a good solution.
>>>
>>> What would be the simplest way to achieve this using preferably stock
>>> python without 3rd party modules? If a not too complex 3rd party
>>> module made it really simple that would be acceptable too.
>>
>> Paul Rubin's p3.py algorithm is probably the most straightforward way to
>> meet
>> these requirements. It's not a standard crypto algorithm by any means,
>> but
>> Paul
>> knows his stuff and has devised it with these deployment restrictions in
>> mind.
>>
>>    http://www.nightsong.com/phr/crypto/p3.py
>
> Thanks a lot, currently I'm having trouble using this code on python
> 2.6 but probably some small tweaking will fix it.

Actually, it also doesn't work with python 2.5 and currently I don't
have access to anything older. array.array raises a

ValueError: string length not a multiple of item size

Does anyone recall a change to array.array?

The full traceback is

Traceback (most recent call last):
  File "p3.py", line 163, in <module>
    _test()
  File "p3.py", line 143, in _test
    c1 = e(plain,key)
  File "p3.py", line 69, in p3_encrypt
    xkey = _expand_key(k_enc, n+4)
  File "p3.py", line 41, in _expand_key
    return array ('L', j)
ValueError: string length not a multiple of item size

Cheers,
Daniel


-- 
Psss, psss, put it down! - http://www.cafepress.com/putitdown



More information about the Python-list mailing list