PHP wysyła zaszyfrowane dane przez URL

Próbuję wysłać zaszyfrowane dane przez adres URL do innej witryny (za pomocąfile_get_contents("anotherUrl.php?hash=$encryptedString"). Problem polega czasami na tym, że szyfrowanie zawiera pewne znaki specjalne, takie jak +, a to powoduje, że deszyfrowanie kończy się niepowodzeniem.

Oto moje metody szyfrowania / deszyfrowania:

public function encrypt($string, $key)
{
    return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
}

public function decrypt($encrypted, $key)
{
    return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
}

Oto przykład zaszyfrowanego ciągu, który zawiera+i zgaduję, że powoduje to niepowodzenie deszyfrowania.

oWCrVPaS+5GbxcQFc0fulUk/zRAkDD60av4zlPiWskE=

Jakieś pomysły, jak powinienem to rozwiązać? Próbowałem to zrobićurlencode() iurldecode() na hash, ale wydaje się również, że powoduje to przerwanie szyfrowania. Czy istnieje sposób na zmianę algorytmu szyfrowania, aby zwracał on tylko znaki url bezpieczne?

questionAnswers(3)

yourAnswerToTheQuestion