Я программирую как на JAVA, так и на PHP. У меня есть одна проблема со сравнением строк. На самом деле две одинаковые строки (на мой взгляд) не одинаковы в соответствии с JAVA.
Предыстория проблемы:
Я установил печенье, используя $userid_hash = sha1($row["profileId"].'helloworld');
вместе с $userid = $row["profileId"]
. Это сделано для предотвращения доступа пользователя к другой учетной записи.
Проблема сейчас в том, что у меня есть некоторый серверный код, написанный на JAVA, который хэширует userid
и сравнивает его с userid_hash
. Я печатаю их в консоли. Обе строки идентичны.
Но дело в том, что я обернул оставшуюся часть кода вокруг оператора if в случае любых попыток мошенничества. И java интерпретирует строки как не одинаковые, даже если они есть, согласно моей консоли в Eclipse. Что может быть источником этой проблемы?
Я использую это как мой хэш SHA1 Синтаксис неверен с моим кодом SHA1 . Я звоню, используя "somestring".getBytes("UTF-8");
. И моя база данных MySQL имеет кодировку UTF-8, а все строки, которые я ввожу в Eclipse, также кодируются в формате UTF-8. Что я сделал не так? Как я могу найти проблему?
EDIT:
Это оператор println в java перед сравнением:
ab968f939a4869339b5cdb611674bdf4954f2f6a
ab968f939a4869339b5cdb611674bdf4954f2f6a
EDIT:
Если заявление:
if(packageName.toSHA1((profileId+"secret").getBytes("UTF-8")) == profileId_ver)