help tranlating perl expressions

Fredrik Lundh fredrik at pythonware.com
Thu Sep 28 13:26:08 EDT 2006


David Bear wrote:

 > I am trying to translate some perl code to python and I need some
 > advice on making fixed sized strings.

looks like you're reimplementing HMAC; there's no need to do that in 
Python, really, since it's part of the standard library:

     http://docs.python.org/lib/module-hmac.html

pass in hashlib.sha1 instead of the default, and you're done.

if you insist on doing it yourself, read on:

>  my $ipad = chr(0x36)x$blen;
>  my $opad = chr(0x5c)x$blen;
> 
> I don't know if I ever seen any way in python of created a fixed size
> string. Can anyone show me how to implement the same statements in python?

just remove all the junk, and use multiply instead of "x":

     ipad = chr(0x36) * blen
     opad = chr(0x5c) * blen

however, Python strings are not mutable, so to implement the rest of 
that algorithm, you probably want to use a list or array object instead. 
  the md5-example-4.py script on this page shows one way to do that:

     http://effbot.org/librarybook/md5.htm

to get a SHA-1 hmac, you have to replace "md5" with "sha".

</F>




More information about the Python-list mailing list