提供URL字符的php加密
嗨,我有一个“/”编码后是%2F。问题是,当我把它作为URL的一部分添加并打开时,抛出404,因为中间有/。所以我的问题是,在php中有什么方法可以 1.加密并获取一个字符串,该字符串从不提供任何像这样的特殊字符 2.把盐送到加密室 下面是我的加密方法:提供URL字符的php加密,php,mcrypt,Php,Mcrypt,嗨,我有一个“/”编码后是%2F。问题是,当我把它作为URL的一部分添加并打开时,抛出404,因为中间有/。所以我的问题是,在php中有什么方法可以 1.加密并获取一个字符串,该字符串从不提供任何像这样的特殊字符 2.把盐送到加密室 下面是我的加密方法: $string='16'; $key='ec5dc8c8' $cipher_alg = MCRYPT_TRIPLEDES; $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT
$string='16';
$key='ec5dc8c8'
$cipher_alg = MCRYPT_TRIPLEDES;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return base64_encode($encrypted_string);
注意:当我使用这组特殊的字符串和键时,我可能会生成一个导致此问题的字符串。尝试以下操作:
返回urlencode(base64_encode($encrypted_string))代码>
更新:
使用标准哈希函数进行加密。它不会返回任何不能进行URL编码的字符
试着这样做:
$string='16';
$key='ec5dc8c8'
$cipher_alg = MCRYPT_TRIPLEDES;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
$encrypted_string = hash('sha256', "$encrypted_string");
return urlencode(base64_encode($encrypted_string));
试试这个:
返回urlencode(base64_encode($encrypted_string))代码>
更新:
使用标准哈希函数进行加密。它不会返回任何不能进行URL编码的字符
试着这样做:
$string='16';
$key='ec5dc8c8'
$cipher_alg = MCRYPT_TRIPLEDES;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
$encrypted_string = hash('sha256', "$encrypted_string");
return urlencode(base64_encode($encrypted_string));
嗨,我忘了提到,我在创建url的时候做了urlencode。因此我得到了%2F来代替/。我还想让您知道,像+这样的字符在URL编码时不会产生问题;这是一条很长的线。但我的意图也是生成微小的urlOk,将散列类型更改为此处找到的类型。Md5稍微短一点。sha256
将通知作为未定义的常量抛出,您应该引用它'sha256'
@Enoba:您不能解码散列,这是一种方法——但您可以用base64\u解码来解码base64\u编码。嗨,我忘了提到,我在创建url时已经完成了urlencode。因此我得到了%2F来代替/。我还想让您知道,像+这样的字符在URL编码时不会产生问题;这是一条很长的线。但我的意图也是生成微小的urlOk,将散列类型更改为此处找到的类型。Md5稍微短了一点。sha256
将通知作为未定义的常量抛出,您应该引用它'sha256'
@Enoba:您不能解码散列,这是一种方法——但您可以用base64\u解码来解码base64\u编码。