2011-12-24 2 views
-1

ok, поэтому у меня есть некоторые ссылки, которые будут созданы для некоторых объявлений на моем сайте через php. Теперь проблема в том, что я просто понимаю, как работает md5, и это не шифрование, и оно не может быть повторно отображено в его самой редкой форме ..... у меня есть некоторые идентификаторы mysql, которые я хочу использовать в качестве данных для выбора ведьмы объявление для запроса базы данных, но я не хочу, чтобы мои пользователи имели доступ к идентификатору объявления ..... поэтому я надеялся, что кто-то может показать мне, как использовать метод хэша/соли в этом случае ..... Обратите внимание: я просматривал этот сайт для этого ответа, и я снова вижу, что люди снова и снова говорят, что соль/хэш не шифрование. Я понимаю это, но его не так просто попытаться взломать мой сайт, если ссылки были хэшированы, поскольку они было бы, если бы они были просто простыми целыми числами.Соль и хэш шифрование/дешифрование для ссылок

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

Ваш вопрос не совсем понятно. Что вы хотите выполнить хэш? И когда? –

+1

Я не понимаю, как злоумышленник может взломать ваш сайт, зная его идентификатор? –

+3

@ xqus Это просто: на самом деле просто используйте идентификатор '1; drop ... '^^ –

ответ

2

Добавление соли является лишь дополнением к надежнее хэширования. И хеширование - это только один способ. Похоже, что вы хотите какой-то способ шифрования вашего $ad['id'], так что вместо того, чтобы пользователи видящих:

/viewad/1/

они видят:

/viewad/12lk3jx09c8faf/

правильно?

Просто Google для некоторых алгоритмов быстрого шифрования/дешифрования.

EDIT: Вот быстрый S.O. вопрос, который может помочь вам:

Best way to use PHP to encrypt and decrypt passwords?

+0

Хотя нет оснований использовать шифрование ... существует множество способов сопоставления внешних значений с внутренним идентификатором ... методы, которые использовали nonce * может * быть потенциально «более безопасным», чем шифрование. –

+0

Согласен. Двухстороннее шифрование кажется лучшим выбором. Если нет, вам также нужно сохранить хэш в db, а затем .. вы могли бы просто использовать id. –

1

Вы могли бы решить вашу проблему с помощью строки GUID, который будет уникальным & не угадываемы без необходимости делать хэш-

 Смежные вопросы

  • Нет связанных вопросов^_^