How many instances of "5" are there in:
Q: Hexdigest and diges SHA1 Как мне можно получить sha1 без hex, сейчас использую простой
DigestUtils.sha("The quick brown fox jumps over the lazy dog".getBytes()) 

выдает 

2fd4e1c67a2d28fced849ee1bb76e7391b93eb12 

а надо чтобы выдавал 

'/\xd4\xe1\xc6z-(\xfc\xed\x84\x9e\xe1\xbbv\xe79\x1b\x93\xeb\x12' 

на питоне это выходит вот так 
stri = 'The quick brown fox jumps over the lazy dog'

ash = hashlib.sha1()
ash.update(stri)
ash.digest()


'/\xd4\xe1\xc6z-(\xfc\xed\x84\x9e\xe1\xbbv\xe79\x1b\x93\xeb\x12'

ash.hexdigest()


'2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'


A: Боюсь, вы ошибаетесь. DigestUtils.sha() возвращает строку или массив байт, содержащие хеш без преобразования.
Вот набросал пример (исправлено):
import org.apache.commons.codec.digest.DigestUtils;

class Test {
    public static void main(String[] args) {
        byte[] digest;
        digest = DigestUtils.sha("The quick brown fox jumps over the lazy dog");
        System.out.println(new String(digest));
    }
}

Вот что в результате:
C:\usr\project\my\java-digestutils>javac Test.java
Note: Test.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

Тут собственно речь о том, что sha() слегка несвежий (надо использовать sha1 или sha256, sha384, sha512 - по вкусу)
C:\usr\project\my\java-digestutils>java Test
/ФбЖz-(ьн??б?vз9←?л↕

Это в cp1251. Если сохранить результат в файл и посмотреть в hex-виде:
0000000000: 2F D4 E1 C6 7A 2D 28 FC │ ED 84 9E E1 BB 76 E7 39  /ФбЖz-(ьн„ћб»vз9
0000000010: 1B 93 EB 12 0D 0A       │                          ←“л↕♪◙

Дополнено
Если нужно получить результат аналогичный результату на Python, то нужно использовать sha1(). Получится такой же резльтат, который продемонстрирован выше. Для сравнения:
import hashlib

stri = 'The quick brown fox jumps over the lazy dog'
ash = hashlib.sha1()
ash.update(stri)
print ash.digest()

Выдает:

/╘с╞z-(№эДЮс╗vч9←Уы↕

Разница в отображаемых строках вызвана различиями кодировки консоли. Если вы хотите, чтобы непечатаемые символы были отображены как в Python (например '\xd4\xe1'), дополнительно придется экранировать эти символы.
Еще раз дополнено
Чтобы экранировать символы, не входящие в latin1 придется писать свою функцию. Допустим добавим в наш класс вот такой метод:
public static StringBuffer escapeNonPrintable(byte[] byteArray) {
    StringBuffer result = new StringBuffer();
    for (byte b : byteArray) {
        if (b < 32 || b > 127) {
            result.append(String.format("\\x%02x", b));
        } else {
            result.append((char)b);
        }
    }
    return result;
}

Теперь перепишем main():
public static void main(String[] args) {
    byte[] digest;
    digest = DigestUtils.sha1("The quick brown fox jumps over the lazy dog");
    System.out.println(escapeNonPrintable(digest));
}

В результате:

/\xd4\xe1\xc6z-(\xfc\xed\x84\x9e\xe1\xbbv\xe79\x1b\x93\xeb\x12


user
I found three "5"s in the provided passage.
assistant