2011-12-24 3 views
-1

좋아, 그래서 일부 링크를 내 웹 사이트에서 PHP를 통해 생성됩니다. 이제 문제는 단순히 md5가 어떻게 작동하는지 이해하고 있으며 암호화가 아니며 희귀 한 형식으로 다시 렌더링 할 수 없습니다. 광고에 대한 데이터베이스를 쿼리 할 수 ​​있지만 내 사용자가 광고 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 쉽습니다. 실제로는 : id를'1; drop ...'^^ –

답변

2

소금을 추가하면 해싱 단지 더욱 보안에 추가되었습니다. 해시는 오직 한 가지 방법입니다. 당신이 당신의 $ad['id']를 암호화하는 몇 가지 방법을 원하는 것처럼 보는 사용자의 그래서 대신에, 소리 :

/viewad/1/

그들은 참조 :

/viewad/12lk3jx09c8faf/

맞죠?

일부 빠른 암호화/암호 해독 알고리즘의 경우 Google.

편집 : 여기가 빠른 S.O.입니다. 당신을 도울 수 있습니다 질문 :

Best way to use PHP to encrypt and decrypt passwords?

+0

거기에 암호화를 사용하는 고유의 이유가 없다 ... 내부 ID에 외부 값을 매핑하는 수많은 방법이 있습니다 ... nonce를 사용하는 방법 * 실제로 암호화보다 잠재적으로 "더 안전 할"수 있습니다. –

+0

동의합니다. 양방향 암호화가 더 나은 선택 인 것 같습니다. 그렇지 않으면 DB에 해시를 저장해야합니다. 그러면 ID를 사용할 수 있습니다. –

1

당신은 & 비 추측 해시에게