1

暗号化と復号化にこれら 2 つの方法がありますが、入力値が復号化関数の出力値と一致しません。問題を見つけるのを手伝ってもらえますか?

private function encryptMd($md)
{
    $md = serialize($md);
    //encryption should happen here
    $md = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->secret, $md, MCRYPT_MODE_ECB);
    $md = gzcompress($md);
    $md = base64_encode($md);
    return $md;
}

private function decryptMd($md)
{
    $md = base64_decode($md);
    $md = gzuncompress($md);
    // decryption happen here
    $md = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->secret, $md, MCRYPT_MODE_ECB));
    $md = unserialize($md);
    return $md;
}

結果は次のとおりです。

最初の文字列: orderid=1111264&cardnumber=4012001037141112&cardname=Test&cardtype=VISA&amount=100&expdate=0214

the encrypted string: eJwBgAB//4LFthFrKDuzX7v+90h2j24xrEnKHHxefzvh5si5yKxEJxtOAo8XG923Ako0eYP7JVH03yN9LPdb/V8JghJVi8tPvloqlEOFwDHUbwBoFGHBNvTRq0vgMRN/Wlpfk8e+UYQWV4TRYYNWNWxVLiwMFWWOk6bsESDgRBkMDQcp//OOFkg5cg==

the recieved string: eJwBgAB//4LFthFrKDuzX7v+90h2j24xrEnKHHxefzvh5si5yKxEJxtOAo8XG923Ako0eYP7JVH03yN9LPdb/V8JghJVi8tPvloqlEOFwDHUbwBoFGHBNvTRq0vgMRN/Wlpfk8e+UYQWV4TRYYNWNWxVLiwMFWWOk6bsESDgRBkMDQcp//OOFkg5cg==

復号化された結果: FALSE

4

1 に答える 1

0

問題は、復号化時に空だった$this->secretにありました。とにかくありがとう。

于 2013-03-12T14:42:56.000 に答える