Попробуйте:
<([^\s]+)(\s[^>]*?)?(?<!/)>
Он похож на ваш, но последний >
не должен быть после косой черты, а также принимает h1
.
Я нашел эту реализацию MD5: https://rosettacode.org/wiki/MD5/Implementation#Java
Я не проверял, если это 100% правильно, хотя [ 112]
Ну, я вижу 2 варианта:
Либо вы пишете свою собственную версию Java, начиная с алгоритма , написанного в псевдокоде .
[113 ] Или вы пытаетесь перепроектировать существующий. Если вы используете Java 8, вы должны взглянуть на класс sun.security.provider.MD5