2017-05-02 67 views
-2

我試圖找出一種方法來加密的用戶ID號。我的想法是結合一些字母(如_wordtouse)加密id(1到5個字符之間)。只有兩個要求是PHP加密和解密的字符串是URL友好

  1. 將加密後的版本只能包含最多15個字符
  2. 我需要能夠解密字符串在不同的頁面

原因這一切是當我嘗試在有人輸入用戶資料時「隱藏」用戶標識號碼。所以我試圖找到一種方法來通過url作爲get參數提供用戶標識的加密版本。

有沒有人對如何解決這個想法?

+2

在[所以]你應該嘗試**自己寫代碼**。後** [做更多的研究](//meta.stackoverflow.com/questions/261592)**如果你有問題,你可以**發佈你已經嘗試**與清楚的解釋是什麼是'工作**並提供[** Minimal,Complete和Verifiable示例**](// stackoverflow.com/help/mcve)。我建議閱讀[問]一個好問題和[完美問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。另外,一定要參加[遊覽]並閱讀[this](// meta.stackoverflow.com/questions/347937/)**。 –

回答

0

這個問題已經在這裏找到答案,我相信:Encrypt/Encoding an ID in URL string

但我想補充一點,而不是使用的mcrypt(the project is abandoned),你應該使用:Libsodium,或化解/ PHP的加密或OpenSSL的

+1

如果問題已經回答了其他地方,你應該刪除你的答案並標記爲重複 – Machavity

+0

@Machavity,以前的答案建議使用被扔棄的mcrypt的,這就是爲什麼我添加到IMO使用的替代品 – lloiacono

3

我只想用hashids library這是非常流行,是許多網址縮短服務的使用建議。雖然它不是真正的「加密」,但它可能足以將用戶的ID號隱藏在網址中。例如:

$userID = 1234; 
$hashids = new Hashids\Hashids('some random secret string'); 

//encode the user id 
$encodedID = $hashids->encode($user_id); 

//on the other page, decode the user id 
$decodedID = $hashids->decode($encodedID); 
+0

看起來很酷,樣本會很好。 –

+0

@NinoŠkopac我在答案中包含了一個例子。我還鏈接到了他們自己網站上的更多信息。 –

+0

對不起,我的意思是輸出的一個例子。 –