Я пытаюсь реализовать алгоритм подписи DSA, и я застрял в проблеме.Я использую класс java.security
MessageDigest
, вот код:
MessageDigest md;
md = MessageDigest.getInstance("SHA-1");
md.update(text.getBytes());
return new BigInteger(md.digest());
Текст - это случайный объект String.Проблема в том, что этот код дает мне отрицательные значения хэша, которые не принимаются алгоритмом.Я делаю что-то неправильно?Заранее спасибо.
PS Кстати, я также пытался реализовать DSA без использования BigIntegers, возможно ли это?Я не нашел значения L и N меньше, чем 1024 и 160, поэтому я понятия не имею, какие значения я должен принимать и какую хеш-функцию я должен использовать.Буду очень благодарен за ответы на эти вопросы.