我需要通過URL傳遞一些加密值。有什麼辦法可以避免加密後獲得的值中的某些字符,如斜槓(/)?因爲在codeigniter中,諸如斜槓之類的字符用於分隔URL中的參數。請注意,我不希望任何建議,不經過加密的字符串中的URL :)在codeigniter中加密時避免使用特定字符?
3
A
回答
-2
你想要的不是一個加密(這意味着安全),而是一個編碼。在實踐中,你的選擇基本上是:(如果你希望字符串是有點清晰使用此這也將使你比其他兩個選項一個較短的字符串)
- 進行urlencode
- 的base64 (如果你不希望字符串清晰並且想要節省字符串中的空間,可以使用它)
- 十六進制(如果您不希望字符串清晰且不關心關於字符串長度)
我不會選擇十六進制。決定是否要讓字符串清晰可辨,並首先選擇其中的一個。
4
使用PHP urlencode
函數加密後:http://php.net/manual/en/function.urlencode.php和多數民衆贊成在處理GET數據的腳本中使用urldecode
。
0
一個想法是僅使用0-9和a-f以及可選的x表示加密的字符串爲十六進制。
但我建議您使用TLS(更好的SSL)來保護您的數據,因爲現在您可能使用JS加密數據,因此密鑰對攻擊者可見。
不要調用當前方案安全或加密,而只是模糊處理。
+0
OP詢問如何將加密的字符串傳遞給url,而不是如何加密,以及如何保護數據;他正在加密(CI有一個本機加密類,他可能會使用它),現在需要傳遞加密數據而不會弄亂路由器類 –
4
class MY_Encrypt extends CI_Encrypt
{
function encode($string, $key="", $url_safe=TRUE)
{
$ret = parent::encode($string, $key);
if ($url_safe)
{
$ret = strtr(
$ret,
array(
'+' => '.',
'=' => '-',
'/' => '~'
)
);
}
return $ret;
}
function decode($string, $key="")
{
$string = strtr(
$string,
array(
'.' => '+',
'-' => '=',
'~' => '/'
)
);
return parent::decode($string, $key);
}
}
-
$key = $this->config->item('encryption_key');
$outboundlink = urlencode($this->encrypt->encode($segment, $key, TRUE));
$inboundlink = rawurldecode($this->encrypt->decode($segment, $key));
-1
這不是正確的方法,但它可以幫助你很多。我爲此做了一些交替的方法。
<html>
<a href="<?= base_url('controller/category/').$this->encrypt->encode($category_men_top->category_id);?>">Category Name</a>
</html>
public function category()
{
$count=$this->uri->total_segments(); //getting total number of segment
$id=''; //assigning value
for ($i=3; $i<=$count ; $i++) {
$id=$id.$this->uri->segment($i).'/';
}
$id=rtrim($id,"/"); // removing '/' from the end of the whole string
echo "$id";
echo "<br>";
echo $this->encrypt->decode($id);
}
相關問題
- 1. 在加密字符串中避免「==」
- 2. 使用SonataAdminBundle編輯特定用戶時避免使用空密碼字段
- 3. 避免在加密和編碼的URL字符串中換行
- 4. 避免在字面字符串中使用轉義字符
- 5. 如何在android中使用特殊字符加密字符串?
- 6. 使用遞歸函數時避免字符串+整數加法
- 7. 如何在使用ResourceManager.GetString()時避免使用魔法字符串?
- 8. @符號後避免使用連字符
- 9. 的Java避免特殊字符
- 10. 避免鍵入一些特殊字符
- 11. 如何避免特殊字符SQLite Android
- 12. 使用特殊字符加密和解密字符串
- 13. PHP-Codeigniter字符串加密和解密
- 14. 在javascript中避免特殊字符在url中
- 15. 避免處理替換字符串中的特殊preg字符
- 16. 在保存數據時使用加密以避免在iPhone遊戲中作弊
- 17. 避免密碼
- 18. 使用dplyr避免反引號字符
- 19. 避免使用.c_str命令使用臨時字符串?
- 20. 在Codeigniter中使用會話類時的加密密鑰
- 21. 避免在特定過程中使用DML索引(MySQL)
- 22. 如何避免在python中使用特定的可選參數
- 23. codeigniter避免將引號附加到值
- 24. 如何在php codeigniter中避免xss atack
- 25. 如何正確避免在自定義字符串中使用分隔符?
- 26. 在使用浮點數時避免不穩定的小數字
- 27. 如何避免在JAVA中重複分析XML特殊字符
- 28. 如何避免特殊字符在Javascript中創建Json對象?
- 29. 如何避免在xmlroot中編碼特殊字符
- 30. 使用字典時如何避免KeyError?
我想要的是一種編碼或加密方法,它不會在結果中產生斜線(/)。 – Stranger