[pyar] Gracias por la mano con lo del cifrado, era para esto:

Claudio Freire klaussfreire en gmail.com
Mie Mar 27 00:59:00 ART 2013


2013/3/26 QliX=D! [aka EHB] <qlixed en gmail.com>:
> Yo use algo de cryptografia en python con pycrypto, aca van unos cuantos
> tips para que no te enloquescas:
> * Los Cipher que uses de pycrypto requiren cierto alineamiento de las
> contraseñas, por ejemplo: AES require que la key de encriptacion sea 16, 24
> 0 32 bytes, por lo que no te conviene pasar la contraseña directa como key,
> hasheala, los hashes devuelven: MD5:16 bytes, SHA-256:32 bytes.
>
> * Tambien require alineamiento del texto a encryptar (multiplo de 16), para
> solucionar esto yo hice:
> b64_txt=base64.b64encode(texto)
> b64_text = b64encode(text)
> text_adjusted = b64_text.ljust(len(s)+16-(len(s)%16), '=')
> Use base64 y el caracter = por ser el caracter de "padding" para base64, o
> sea, no se "traduce" a nada.
> Se puede resolver esto de otras formas, en mi caso particular encripte
> archivos generales tanto de texto como binarios, entonces me resultaba util
> el base64.


Todas esas son las maneras equivocadas de hacer las cosas.

Para "hashear las contraseñas", no hay que usar ni MD5 (por favor NO
md5) ni SHA-256, sino los de la familia de PBKDF, que están
específicamente diseñados para esto, y para ser robustos.

Para el alineamiento del texto a encriptar, hay esquemas también
estándar entre los PKCS (a pesar de decir PK, son aplicables a
algoritmos simétricos) que, igualmente, están diseñados para ser
robustos.

Y cuando digo robustos, digo en el sentido criptográfico. Resistir análisis.

En fin, pycrypto te da las herramientas, pero el protocolo
lamentablemente no conozco módulo en python que implemente ninguno de
forma completamente encapsulada y APB. Lo único así es HMAC (en el
módulo hmac).



More information about the pyar mailing list