我有一些我想要加密的东西并通过URL中的get传递它,我要加密的值类似于'019230132_15 / 10/2012'(带有下划线的数字,后跟巴西的日期)格式),当我加密这个值时,我会得到类似'cMZns2q7U2vgD9t + zufUeKextc / WyuFB4WyVMQ ='的内容,但是通过网址上的GET传递这个问题会让我产生问题,因为浏览器认为值中间的'/'是一个目录分隔符,我的encription算法类似于:
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)),并解码两次以获得原始值
答案 0 :(得分:2)
如果要在PHP中创建值(即,将链接从PHP传递到浏览器中的类似a
标签),请先使用PHP的urlencode。
但是,如果您使用的是JavaScript,请使用javascript的escape functions,尤其是encodeURIComponent