Не знаю, имеет ли это значение, но ваш SHA1
хеш da39a3ee5e6b4b0d3255bfef95601890afd80709
- это хорошо известный хэш пустой строки.
Это просто пример или вы забыли предоставить фактический IP
адрес для функции вычисления хеша?
Обновление:
Генерирует ли код вашей веб-страницы SHA1
хэши в нижнем регистре?
Эта проверка не будет выполнена в MySQL
:
SELECT SHA1('') = 'DA39A3EE5E6B4B0D3255BFEF95601890AFD80709'
В этом случае используйте это:
SELECT SHA1('') = LOWER('DA39A3EE5E6B4B0D3255BFEF95601890AFD80709')
, что получится.
Кроме того, вы можете пересчитать хэш SHA1
при вставке записей в таблицу:
INSERT
INTO ip_records (ip, ip_sha)
VALUES (@ip, SHA1(CONCAT('my_secret_salt', @ip))
SELECT *
FROM ip_records
WHERE ip_sha = @my_salted_sha1_from_webpage
Это вернет вам исходный IP
и позволит индексировать ip_sha
, чтобы этот запрос работал быстро.