[PHP-users 35578] Re: mcrypt_decrypt() が正しく複合化できない

Hideo hideox @ gmail.com
2011年 5月 26日 (木) 20:21:19 JST


さいとうと申します。

$mcrypt_data = mcrypt_decrypt('rijndael-256', $key,
base64_decode($data_enc), 'ecb');
とかでもダメですか?未検証ですが;


2011年5月26日17:35 youo hoko <yoko00068 @ yahoo.co.jp>:
> 星野と申します
>
> mcrypt以外(openssl_*系関数等)でAES256 ECBで暗号化したデータを
> PHPの mcrypt_*系関数で復号出来ないようです。
>
> サンプルコード
> ---
> <?php
>    $key = 'secret key' ;
>    $data = 'abcd1234' ;
>    $data_enc = openssl_encrypt($data,'aes-256-ecb',$key,TRUE) ;
>
>    echo "openssl:" , openssl_decrypt($data_enc,'aes-256-ecb',$key,TRUE),"\n" ;
>    echo "mcrypt :" , mcrypt_decrypt('rijndael-256',$key,$data_enc,'ecb') ,"\n" ;
> ?>
> ---
> 結果
>> openssl:abcd1234
>> mcrypt :[バイナリになってしまい表示不能]
>
> openssl_decrypt()とmcrypt_decrypt()の結果が違ってしまってます。
>
> その他試したこと
>
> ・PHPのmcryptで暗号化したものはPHPのmcryptで復号できる
> ・PHPのopensslで暗号化したものはPerlのCrypt::Rijndaelで復号できる
> ・PerlのCrypt::Rijndaelで暗号化したものはPHPのmcryptで復号できない
> ・mcrypt_module_open() から使っても同じ結果です
>
> PHPのmcryptがおかしいように思います
> というかlibmcryptがおかしいということでしょうか
>
> PHPのPKCS#5パディングがjava等と違うという問題もあるようですが、
> パディング除去は複合化後の処理なので、関係ないと思います。
>
> 環境
> # php -v
>> PHP 5.3.0 (cli) (built: Nov  2 2009 05:23:58)
>> Copyright (c) 1997-2009 The PHP Group
>> Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
>
> # uname -a
>> Linux web2 2.6.18-164.6.1.el5 #1 SMP Tue Nov 3 16:12:36 EST 2009 x86_64 x86_64 x86_64 GNU/Linux
>
> # cat /etc/issue | head -1
>> CentOS release 5.4 (Final)
>
> # rpm -qa | grep mcrypt
>> libmcrypt-2.5.8-4.el5.centos
>> libmcrypt-devel-2.5.8-4.el5.centos
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>



-- 
/**-----------------------------------------
 * hideox @ gmail.com
 */


PHP-users メーリングリストの案内