2009-04-03 7 views
3

URLにいくつかのデータを渡すための簡単なハッシングメソッドを作成する必要があります。それは非常に安全である必要はありません、それはほとんどの人には明らかではありません。PHPで単純なハッシュが必要です

ハッシュには、送信者の数値IDと受信者のIDが含まれている必要があります。追加されたハッシュを読み取った後、データを復号できるはずです。

アイデア?できるだけ短くすることをお勧めします。このURLはIM、電子メールなどで共有されるためです。

答えて

7

ハッシュは一方向のみです。解読する場合は、暗号化する必要があります。 mcryptone of theseを試してください。

安全でないものはbase64_encodeを試してみてください。base_convert各数字は10〜36桁です。数字を秘密の定数で乗算することも役に立ちます。

$obscurity = base_convert($recipientId * 42, 10, 36) . ':' . base_convert($senderId * 42, 10, 36) 
1

@OISのように、暗号化を使用できます。

または、ハッシュを使用して、送信者IDと受信者IDをキーにしたデータベースにハッシュ値を格納することができます。 PHPはmd5()sha1()が組み込まれています。

+0

md5とsha1は反対側で(簡単に)デコードできません。 –

+1

これは、送信者IDと受信者IDをキーにしたデータベースにハッシュ値を格納することを提案した理由です。それは最良の解決策ではないかもしれませんが、うまくいくでしょう。不必要なdownvoteに対抗するためにUpvoted。 –

2

base64エンコード/デコードを試してください。あなたは再びそれをデコードする場合

http://mysite.com/messages/[encoded string here] 
2

base64では間違いなくトリックを行う必要があります:あなたのURLは次のように見えてしまい、apacheのオプション「Multiviewsを」またはApacheのmod_rewriteと一緒に入れました。

これは「ハッシュ」ではないことに注意してください。ハッシュは一般に一方向の暗号化を意味します。

 
$senderId = 1234; 
$recipientId = 5678; 
$myString = $senderId . ":" . $recipientId; 
echo base64_encode($myString); 

関連する問題