Я использую jdbcRealm для безопасности в моем Glassfish v3.0.1 b22. Он настроен так, что он использует таблицу USER в моей базе данных для аутентификации, следуя этому блогу: http://blogs.oracle.com/foo/entry/mort_learns_jdbc_realm_authentication. У меня все работает нормально, если я оставлю алгоритм дайджеста в виде обычного текста. Однако, когда я пытаюсь использовать SHA-256 для алгоритма дайджеста, он перестает работать. Я указал в Glassfish - Security - Realm - jdbcRealm - дайджест, что мне нужен SHA-256 (я просто набираю SHA-256 внутри поля дайджеста). Затем я написал простую программу на Java для преобразования текста пароля в хэш SHA-256. Затем я вставляю этот хеш в поле своего пароля в базе данных. Кстати, поле пароля имеет тип varchar (30). Я больше не могу войти в систему. Я заметил, что моя простая программа на Java каждый раз генерировала разные хэши для одного и того же текстового поля.
Ниже представлена моя простая программа на Java:
MessageDigest md = MessageDigest.getInstance("SHA-256");
String text = "admin";
md.update(text.getBytes("UTF-8"));
byte[] digest = md.digest();
System.out.println(digest.toString());