일부 데이터를 쿠키에 저장해야합니다. 데이터는 mcrypt
암호화를 거친 다음 base64
을 통해 이상한 문자가 사용되지 않도록합니다.
암호화 된 & 인코딩 된 문자열을 세션에 저장하고 다시 읽고 & 해독/해독을 완벽하게 작동합니다. 쿠키에 동일한 작업을 수행하지 못하면 완전히 횡설수설 한 텍스트가 반환됩니다.PHP : 쿠키에 base_64 데이터 저장
분명히 이것은 mcrypt-decrypt
함수 호출이 부적절한 데이터를 수신하여 내 쿠키의 내용이 어떤 식 으로든 영향을 받았다고 생각하게하기 때문입니다.
PHP가 내 쿠키 데이터에서 백그라운드에서 수행하는 작업은 무엇입니까?
코드 :
합니다 (Mcrypt 라이브러리-기능을 쉽게 읽을 수 있도록 일반 함수 호출 다음과 같이 표현합니다) 쿠키로 보내기 전에 문자열에
$string = base64_encode(mcrypt_encrypt('A string'));
setcookie('string', $string, time()+3600);
$_SESSION['string'] = $string;
$sessiondata = base64_decode(mcrypt_decrypt($_SESSION['string']); // A string!
$cookiedata = base64_decode(mcrypt_decrypt($_COOKIE['string'])); // Completely gibberish
은 아마도 적용된 문자 인코딩과 관련이 있습니다! – Raffael
세션 내용도 영향을받지 않습니까? – Industrial
문자열 해독을 시도하기 전에 먼저'$ _COOKIE [ 'string']'의 내용을보고'$ _SESSION [ 'string']'과 같은지 확인하십시오. –