

開発言語はPHPです。

データは以下のアルゴリズムで暗号化されています。  
3DES-CBC(Paddingなし)  
Padding文字列：半角スペース

１、暗号化  
Padding処理  
自動Paddingなしなので最後の８バイトブロックに対して必要な分だけ半角スペースで埋める

3DES-CBC  
秘密キーと初期化ベクトル(iv)で暗号化

BASE64エンコード

２、復号化  
上記の逆なので  
BASE64デコード

3DES-CBC復号化

空白を除去

で良いと思うのですが、以下のような感じで良いのでしょうか？

[code]

    $encrypt;  //暗号化されたデータ
    
    //BASE64デコード
    $data = base64_decode($encrypt);
    
    $des;　//秘密キー
    $iv;　 //初期化ベクトル(iv)
    
    //使用するアルゴリズムおよびモードのモジュールをオープン
    $em = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');
    
    // 暗号化に必要な全てのバッファを初期化
    mcrypt_generic_init($em, $des, $iv);
    
    //復号化する
    $decode = mdecrypt_generic($em, $data);
    
    //空白を除去する
    $result = trim($decode);
    
[/code]

よろしくお願いします。


CC BY-SA 3.0
2015-02-06T08:44:08.933
6065
2015-02-06T10:39:48.637
2015-02-06T10:39:48.637
5960
question
php security
PHPで3DES-CBCで暗号化されたデータを復号したい