2011-12-24 14 views
-1

大丈夫ですので、私はいくつかのリンクをPHP経由で私のウェブサイト上のいくつかの広告のために生成されるでしょう。今私が持っている問題は、単純に私はmd5の仕組みを理解しており、暗号化ではなく、その最も希薄な形式では再レンダリングできません。私は魔法を選択するデータとして使用したいいくつかのmysql idsを持っています広告はデータベースを照会するが、私はユーザーに広告IDへのアクセス権を持たせたくないので、誰かがこのケースでハッシュ/ソルト法を使用する方法を私に見せてくれることを願っていた..... 注意:私はこの答えのためにこのサイトを見てきました。私は人々が時間と時間をもう一度塩/ハッシュが暗号ではないと言うのを見ていますが、リンクがハッシュされた場合、もしそれらが単なる単純な整数であるならば。リンクの塩とハッシュの暗号化/復号化

PHPスクリプト:

<? 
function SuperAd($id){ 
    $sql = mysql_query("SELECT * FROM `ads` WHERE `id`= $id"); 
    while($ad = mysql_fetch_array($sql)){ 
     $title = $ad['title']; 
     // here is where i want to encrypt 
     $adlink = $ad['id']; 
    } 
} 
?> 
+3

を行うことなく、独自の&非推測だろう行のGUIDを使用して、あなたの問題を解決することができます。ハッシュを実行するのは何ですか?いつ? –

+1

攻撃者が広告IDを知るだけでどのようにサイトをハックする可能性があるのか​​分かりませんか? –

+3

@xqusこれは簡単です:実際には '1のIDを使用します。 drop ... '^^ –

答えて

2

塩を追加するには、ハッシュにちょうどより強固追加です。ハッシングは一方的な方法です。

彼らは見

/viewad/1/

/viewad/12lk3jx09c8faf/

右あなたの$ad['id']を暗号化するいくつかの方法をしたいようですので、その代わりに、ユーザーが見ての、聞こえますか?

いくつかの簡単な暗号化/復号化アルゴリズムではGoogleだけです。

EDIT:ここには簡単なS.O.があります。あなたを助けるかもしれない質問:

Best way to use PHP to encrypt and decrypt passwords?

+0

暗号化を使用する固有の理由はありません...内部IDに外部値をマップする多くの方法があります...ノンスを使用したメソッド* *実際には暗号よりも潜在的に「より安全」である可能性があります。 –

+0

私は同意します。双方向の暗号化はより良い選択のように思えます。そうでなければ、データベースにハッシュを格納する必要があります。そして、あなたはちょうどIDを使用することができます。 –

1

あなたはあなたの質問は全く明らかではないハッシュ