嗨我有一个"/",编码后,%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_MODE_ECB), MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return base64_encode($encrypted_string);
Run Code Online (Sandbox Code Playgroud)
注意:当我使用这个特殊的字符串和键集时,我可以生成一个字符串来解决这个问题.
试试这个:
return 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));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2508 次 |
最近记录: |