开发者

error in php crypt

开发者 https://www.devze.com 2023-02-19 17:09 出处:网络
i use such f-n to encrypt\\decrypt <? //Encrypt Function function mc_encrypt($encrypt, $mc_key) {  $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);

i use such f-n to encrypt\decrypt

<?
//Encrypt Function
function mc_encrypt($encrypt, $mc_key) {
     $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
    $passcrypt = trim(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($encrypt), MCRYPT_MODE_ECB, $iv));
    $encode = base64_encode($passcrypt);
    return $encode;
}

// Decrypt Function
function mc_decrypt($decrypt, $mc_key) {
    $decoded = base64_decode($decrypt);
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
    $decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($decoded), MCRYPT_MODE_ECB, $iv));
    return $decrypted;
}
?>

if i call mc_encrypt('test', 'pass') all 开发者_Go百科decrypts ok, but if i call mc_encrypt('test=value', 'pass') i can't decrypt. why? and what must i do?


You should tell us what happens, i.e. what code you call, what you expect, and what comes out. We cannot guess what "I can't decrypt" means.

I can give you one suggestion already though:

$passcrypt = trim(mcrypt_encrypt(
  MCRYPT_RIJNDAEL_256, $mc_key, trim($encrypt), MCRYPT_MODE_ECB, $iv));

Don't mess with the input data [trim($encrypt)]. If the caller wants to trim the string, leave it to them to do it. Otherwise, if your input string has whitespace to trim, you will end up encrypting a different string than was passed in. That can only end in tears.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号