Вы на самом деле не дали достаточно информации, но я подозреваю, что вас отвлекает это:
System.out.println("raw = " + raw.toString());
Это будет выводить что-то вроде [B@30a4effe
, которое не имеет ничего с данными в байтовом массиве. Вместо этого вы должны распечатать hash
- который должен быть одинаковым для всех вызовов, если ваш token
действительно совпадает.
(Как отметил Дэн, ваш метод имеет неправильное название: хеширование не является шифрованием. Также, пожалуйста, не перехватывайте Exception
или , просто глотайте исключения, подобные этому. верните token
при ошибке тоже.)
РЕДАКТИРОВАТЬ: Как уже отмечалось, я предположил, что Base64.encode
на самом деле возвращает строку, что может и не быть. Я бы порекомендовал эту реализацию base64 , которая является общественным достоянием и имеет разумный API - вызовы кодирования возвращают String, что вполне уместно. Конечно, тогда вам не нужен явный вызов toString()
...