Что ж, произойдет , если MessageDigest.getInstance()
throw NoSuchAlgorithmException
- потому что вы распечатываете исключение, но затем продолжаете независимо.
Однако на самом деле это происходит из-за этого:
private static final char[] HEX_CHARS = null;
, а затем это:
chars[2 * i] = HEX_CHARS[(buf[i] & 0xF0) >>> 4];
Я подозреваю, что вы на самом деле не запускаете код, который у вас есть - по крайней мере, на моей машине NPE правильно указывает на строку 24, строку, включающую HEX_CHARS.
Исправить:
private static final char[] HEX_CHARS = "0123456789ABCDEF".toCharArray();