Please provide links to the AES implementation you're trying to use
from PHP and the Python and PHP code you're using.
Geremy Condra
php I am trying to use is here:
http://code.google.com/p/antares4pymes/source/browse/trunk/library/System/Crypt/AES.php?r=20
and python code:
# -*- coding: utf-8 -*-
from Crypto.Cipher import AES
import base64
import os
BLOCK_SIZE = 32
PADDING = '{'
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e:
c.decrypt(base64.b64decode(e)).rstrip(PADDING)
secret = "passkeypasskeyaa" #os.urandom(BLOCK_SIZE)
iv='1234567890123456'
cipher = AES.new(secret, AES.MODE_CBC, iv)
# encode a string
tajnytext ='Alice has a cat'
encoded = EncodeAES(cipher, tajnytext)
print encoded
# decode the encoded string
decoded = DecodeAES(cipher, encoded)
print 'Decrypted string:', decoded
Thank you for your help in advance
> >> > Hello,
>
> >> > I would like to encrypt text in python and decrypt it in my PHP script.
> >> > I tried to use pycrypto and some aes php scripts but the results are not the
> >> > same. Please, is there any example (the best way source codes) how to do
> >> > this in python and PHP?
>
> Please provide links to the AES implementation you're trying to use
> from PHP and the Python and PHP code you're using.
>
> Geremy Condra- Hide quoted text -
>
> - Show quoted text -
That library does not appear to be doing CBC as far as I can tell.
Maybe they will agree if you use EBC instead?
> BLOCK_SIZE = 32
According to the docs, the block size for AES is 16, not 32. It is
the key size that can be 16, 24, or 32. But this should just result
in extra padding, so it probably doesn't explain the discrepancy.
> pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
> EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
> DecodeAES = lambda c, e:
> c.decrypt(base64.b64decode(e)).rstrip(PADDING)
Stylistic note: is it really necessary to use lambda here? For
readability, just use def. It's worth having to hit Enter a couple
extra times.
Cheers,
Ian