我有一个东西要加密并通过 URL 中的 get 传递,我要加密的值类似于“019230132_15/10/2012”(带下划线的数字,后跟巴西格式的日期),当我加密这个值时,我得到类似“cMZns2q7U2vgD9t+zufUeKextc/WyuFB4WyVMQ=”的东西,但是通过 GET 在 url 上传递这个给我带来了问题,因为浏览器认为值中间的“/”是目录分隔符,我的加密算法类似于:
base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_256,
md5(self::ENCRYPT_SALT),
$value,
MCRYPT_MODE_CBC,
md5(md5(self::ENCRYPT_SALT))
)
);
我什至不想知道为什么会这样,我只是想要某种方法来加密和解密一个值,它不一定是有史以来最安全的方式,因为我提供的信息并不值得麻烦破解它。
EDIT1:使用 PHP 函数 urlencode 不起作用,我收到错误 404,因为 url_encode 将 '/' 转换为 '%2F',我认为值得一提的是我在我的 Apache 上使用了 mod_rewrite
EDIT2:设法使 urlencode 像 urlencode(urlencode($value)) 一样使用它两次,并解码两次以获得原始值