MCrypt com algoritimo twoFish 128

126 views
Skip to first unread message

Felipe Nascimento de Moura

unread,
Nov 6, 2009, 6:07:09 AM11/6/09
to list...@googlegroups.com
Olá.
Alguem aí tem algum exemplo de uso da mcrypt com o algorítimo twofish para encriptação?
Antes que perguntei POR QUE twofish, tenho que fazer uma integração com um sistema gerado em Genexus, o qual somente oferece este algorítimo para encriptação.

Eu QUASE consegui.
tava testando assim:

$c= mcrypt_module_open('MCRYPT_TWOFISH_128', '', 'ecb', '');
echo mcrypt_generic($c, 'This is very important data');

e o erro retornado é este:

Warning: mcrypt_module_open() [function.mcrypt-module-open]: Could not open encryption module in /var/www/ambientes/desenvolvimento/finagi/index.php on line 2

Warning: mcrypt_generic(): supplied argument is not a valid MCrypt resource in /var/www/ambientes/desenvolvimento/finagi/index.php on line 3


ou seja, mcrypt ta funcionando, caso contrario, daria que a funcão nao foi encontrada, mas o pacote twofish q nao ta rolando!

Agradeço.


--
Felipe N. de Moura
Desenvolvimento Web

http://felipenascimento.org
http://thewebmind.org
---------------------------------
Fazendo da web um lugar melhor pra se viver.
Making the web a better place to live

Anderson Fraga

unread,
Nov 6, 2009, 7:04:39 AM11/6/09
to list...@googlegroups.com
Experimente desta maneira:
 
define('SALT', '1');
 
function encrypt($text) {
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TWOFISH, MCRYPT_MODE_ECB), MCRYPT_RAND);
    $base64 = mcrypt_encrypt(MCRYPT_TWOFISH, SALT, $text, MCRYPT_MODE_ECB, $iv);
    return trim(base64_encode($base64));
}
 
function decrypt($text) {
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_TWOFISH, MCRYPT_MODE_ECB), MCRYPT_RAND);
    return trim(mcrypt_decrypt(MCRYPT_TWOFISH, SALT, base64_decode($text), MCRYPT_MODE_ECB, $iv));
}
 
 

Felipe Nascimento de Moura

unread,
Nov 6, 2009, 7:30:48 AM11/6/09
to list...@googlegroups.com
Opa, Anderson.

Eu havia conseguido fazer alguma coisa, anteriormente, com um codigo meio "bagunçado", hehe, q estava gerando esta chave: l3Uh0meEDxNdweXUK7GrtQ==

com esse codigo que tu mandou, ficou bem mais organizado, e dando a mesma chava. Porem, o estranho, é que a chave que o outro sistema me manda, usando a mesma key para encriptar a mesma palavea, é esta: zs7JvLAFvd1uNZw/FJ1yGQ==

To tentando catar o que pode estar havendo.
O outro sistema roda em C# no windows, e o php roda num linux, isso influenciaria, será?!

abraço, valew pela força.

Anderson Fraga

unread,
Nov 6, 2009, 7:41:01 AM11/6/09
to list...@googlegroups.com
Teve um tópico ontem, relatando sobre problemas semelhantes com as funções Crypt.
O cara até abriu um relato de bug [1], e a equipe do php.net informou ser um bug já conhecido...
 
Acredito que seja o mesmo problema que tu está passando...
Precisaremos esperar uma correção em uma nova versão do PHP ;)
 
 

Anderson Fraga

unread,
Nov 6, 2009, 7:44:46 AM11/6/09
to list...@googlegroups.com

Felipe Nascimento de Moura

unread,
Nov 6, 2009, 1:39:17 PM11/6/09
to list...@googlegroups.com
bah, cara, valeu pelos links, dei mais uma pesquisada e tal, e percebi que este bug so acontece qndo estamos comparando hashes de servidores com SOs diferentes, E, com arquitetura diferente (um 64b e outro 32b) na versao do PHP 5.3 ... CASUALMENTE, é exatamente esta, a situação que temos aqui... aí, caiu a casa ...
:/

estamos avaliando agora, possíveis soluções... ideias são bem vindas, hehe

valew.



2009/11/6 Anderson Fraga <gro...@andersonfraga.net>

Diego Reis Carvalho

unread,
Nov 6, 2009, 1:47:08 PM11/6/09
to list...@googlegroups.com
usar js ou flash para criptografar usando uma biblioteca de criptografia... mais isso faria vc perder toda a segurança ja q o esquema todo estaria no cliente o que é um furo de segurança
 
ou então vc poderia criar algo usando outro tipo de criptografia q retorne igual rodando em SO diferente ou arquitetura diferente. e ae vc criaria uma função q faria um mix com essa criptografia q funcione + chaves proprias de segurança + o que sua imaginação permitir tem meios de fazer criptografias de ida e volta mais se for so de ida é mais facil ainda.

[]s
DiReis (Diego Reis Carvalho)
www.direis.net


2009/11/6 Felipe Nascimento de Moura <felipe...@gmail.com>

Felipe Nascimento de Moura

unread,
Nov 6, 2009, 1:56:49 PM11/6/09
to list...@googlegroups.com
é, o que me limita é que o tal do Genexus oferece apenas esse algorítimo do twofish, e está rodando em um server Windows 32, junto com toda uma aplicação enorme, enquanto o PHP roda com outra aplicação enorme, em um server linux 64 :/

de repente em flash seja um pouco mais seguro, sei la, mesmo sendo em lado cliente. vou ver alguma alternativa ;)



2009/11/6 Diego Reis Carvalho <dir...@gmail.com>

José Cláudio Medeiros de Lima

unread,
Nov 6, 2009, 3:18:18 PM11/6/09
to list...@googlegroups.com
Dá pra configurar uma máquina virtual no linux, e fazer a sua aplicação php rodar a partir dela?

Felipe Nascimento de Moura

unread,
Nov 6, 2009, 4:26:11 PM11/6/09
to list...@googlegroups.com
hmm, posso tentar, mas vou ter q tratar isso com o pessoal da infraestrutura... so q hj é sexta.. agora so falo com eles na segunda :p

aí aviso aqui.

Valewww.


2009/11/6 José Cláudio Medeiros de Lima <kla...@gmail.com>
Reply all
Reply to author
Forward
0 new messages