php
  • variables
  • customization
  • 2011-09-28 52 views -2 likes 
    -2

    好一個字符串,所以我有一個PHP腳本像下面這樣:加密在PHP

    <?php 
    $name = "Steve Jobs"; 
    header('Location: http://www.apple.com/custom.php&name=' . $name); 
    ?> 
    

    現在,我偶然發現它有點兒尷尬有這個風俗「嗨的URL,史蒂夫喬布斯「頁面的網址爲http://www.apple.com/custom.php&name=Steve%20Jobs,因此希望對其進行編碼。

    有沒有簡單的方法讓這個名字更隱晦?有沒有辦法避免在URL中傳遞它?

    +5

    烏姆是頭什麼也不做.... – Neal

    +0

    廢話...那麼,它工作在我的腳本,所以只要想象它的效果^。^ – DLA

    +0

    是的。要使用'header'重定向,您需要執行'header('Location:http://someaddress.com');'。 – Alex

    回答

    4

    爲了避免在URL中傳遞變量,您可以使用session variables使用$_SESSION數組。

    您可以查看一些basic usage的PHP文檔以及其他示例。

    +0

    雖然不想太過分先進...... – DLA

    +0

    這不是高級PHP。你目前的解決方案可以說是最簡單的,其他任何東西都會更復雜。即使如此,並不複雜得多。 – Alex

    1

    最簡單的方法是base64_encode($ name),然後base64_decode在另一端。

    +0

    這正是我所期待的。謝謝! – DLA

    +0

    我想說,很多人仍然會認識到base64編碼,它有一個特點,它很容易解碼。如果您的目標是隱藏最終用戶的數據,這是一個不好的方法。如果你的目標只是讓一個URL看起來更「技術性」......那太糟糕了! – Alex

    +0

    亞歷克斯,我同意,這是不理想的。但是,如果他唯一的原因是在URL中有文字看起來很俗氣,那麼這是對其餘代碼進行最少更改並實現目標的最簡單方法。有人可能會解碼它可能不會關心在URL中具有未編碼變量的「粘性」,所以它並不重要。 –

    0

    首先,您可以將名稱存儲在cookie或會話中,在下一頁上閱讀並從session/cookie中刪除它。這樣,它將不會被包含在URL中。

    如果您只是不想將它作爲純文本傳遞,您可以使用base64_encode()和base64_decode()。但是這不會阻止任何有經驗的用戶閱讀實際值。

    使用mcrypt()來加密消息,使用base64_encode()使加密版本的ASCII碼包含在URL中,然後在下一頁上解碼並解密。要小心,很多榨汁機使用種子值,這些值也必須保存併發送到下一頁,以便能夠解密。

    所有情況都假設下一頁是同一應用程序的一部分(或者這兩個應用程序都是您的)。如果你想加密任何URL的字符串,你不能,因爲你重定向到的頁面將無法讀取它。

    0

    嘗試這些PHP函數convert_uuencodeconvert_uudecode

    這比只使用更安全的base64

    function encrypt_decrypt ($data, $encrypt) { 
        if ($encrypt == true) { 
         $output = base64_encode (convert_uuencode ($data)); 
        } else { 
         $output = convert_uudecode (base64_decode ($data)); 
        } 
        return $output; 
    } 
    
    $enc_txt = encrypt_decrypt ("TEXT PLAIN", true); 
    echo $enc_txt."\n"; 
    // KjUkNTg1IiEwMyQlKTNAYGAKYAo= 
    echo encrypt_decrypt ($enc_txt, false); 
    // TEXT PLAIN 
    
    相關問題