从一系列函数返回2个值

时间:2014-06-26 15:47:15

标签: php encryption mcrypt

嗨,祝所有会员,管理员和大家好。我想问一个与我上一篇文章有​​关的问题,可以在这里看到题为Crypto-Js different output from mcrypt Upon chage of data to encrypt的问题。现在我的问题是我做了另一个PHP函数,最终会调用链接中声明的这个函数。请参阅下面我创建的基本php函数。

function login($word,$word2)
{

$word = mcrypts_encrypt($word);
$word2 = mcrypts_encrypt($word2);

    return $word;
    return $word2;

}

现在我的问题是,我尝试将$ word和$ word 2放在真实数据中,例如CROW和Blader,但它只回显了CROW ($ word)的加密字,不是Blader ($ w0rd2)

为了参考目的,我还将包括加密脚本。

MCRYPT_ENCRYPT

function mcrypts_encrypt($encrypted)
{
//Padding 6/25/2014
    $pad = 16 - (strlen($encrypted) % 16);
    $encrypted = $encrypted . str_repeat(chr($pad), $pad);
//Encrypt//Decode
    $iv = base64_decode('AAAAAAAAAAAAAAAAAAAAAA==');
    $key = base64_decode('ITU2NjNhI0tOc2FmZExOTQ==');
    $plaintext = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC,  $iv );
//Return encrypted Data
    return base64_encode($plaintext);
}

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您只能从函数中调用return一次,此时,代码流将返回给调用者。

要将多个值传递回调用者,请返回包含这两个值的数组,例如

function login($word,$word2)
{
    $word = mcrypts_encrypt($word);
    $word2 = mcrypts_encrypt($word2);

    return array($word, $word2);
}

并使用;

$encrypted = login('first-word', 'second-word');
echo $encrypted[0]; // the first word, encrypted
echo $encrypted[1]; // the second word, encrypted

答案 1 :(得分:0)

这有效

<?php
function login($word,$word2)
{
    $word = mcrypts_encrypt($word);
    $word2 = mcrypts_encrypt($word2);
    return array($word, $word2);
}
function mcrypts_encrypt($encrypted)
{
   //Padding 6/25/2014
    $pad = 16 - (strlen($encrypted) % 16);
    $encrypted = $encrypted . str_repeat(chr($pad), $pad);
    //Encrypt//Decode
    $iv = base64_decode('AAAAAAAAAAAAAAAAAAAAAA==');
    $key = base64_decode('ITU2NjNhI0tOc2FmZExOTQ==');
    $plaintext = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_CBC,  $iv );
    //Return encrypted Data
    return base64_encode($plaintext);
}

var_dump(login("test1", "test2"));
?>

输出:

array(2) {
  [0]=>
  string(24) "eeyZfxyUnMykJ23fMamEBQ=="
  [1]=>
  string(24) "0egb4dfuXbgFg7GzuuBZcQ=="
}

答案 2 :(得分:0)

function login($word,$word2)
{

    $word = mcrypts_encrypt($word);
    $word2 = mcrypts_encrypt($word2);
    $returnArray["user"]  = $word;
    $returnArray["pass"]  = $word2;
    return $returnArray;   
}

函数调用

$loginValues  = login('CROW','Blader');
extract($loginValues);
print $user; // prints $word
print $pass; // prints $word2