Skip to content
New features:
o Add support for XXHash32  Issue: CODEC-241. 
o Fluent interface for DigestUtils  Issue: CODEC-220. 
o Fluent interface for HmacUtils  Issue: CODEC-222. 
o Add support for CRC32-C  Issue: CODEC-171. Thanks to Brett Okken. 
o Add HmacAlgorithms.HMAC_SHA_224 (Java 8 only)  Issue: CODEC-217.
Thanks to Gary Gregory. 
o Support JEP 287: SHA-3 Hash Algorithms  Issue: CODEC-213. Thanks to
Gary Gregory. 
o Create a minimal Digest command line utility:
org.apache.commons.codec.digest.Digest  Issue: CODEC-212. Thanks to Gary
Gregory. 
o Add DigestUtils.getDigest(String, MessageDigest)  Issue: CODEC-210.
Thanks to Gary Gregory. 
o Make some DigestUtils APIs public  Issue: CODEC-208. Thanks to Gary
Gregory. 
o Add java.io.File APIs to MessageDigestAlgorithm  Issue: CODEC-206.
Thanks to Gary Gregory. 
o BaseNCodecOutputStream only supports writing EOF on close()  Issue:
CODEC-183. Thanks to Steven Wurster. 
o Support SHA-224 in DigestUtils on Java 8  Issue: CODEC-195. Thanks to
Gary Gregory. 
o Support java.nio.ByteBuffer in org.apache.commons.codec.binary.Hex
Issue: CODEC-194. Thanks to Gary Gregory. 
o Support java.nio.ByteBuffer in DigestUtils  Issue: CODEC-193. Thanks
to Michael Donaghy. 
o Add BaseNCodec.encode(byte[], int, int) input with offset and length
parameters for Base64 and Base32.  Issue: CODEC-202. Thanks to Oleg
Kalnichevski. 
o Add convenience method decodeHex(String).  Issue: CODEC-203. Thanks to
Gary Gregory. 
o Add faster CRC32 implementation.  Issue: CODEC-205. Thanks to Gary
Gregory. 
o Add convenience API
org.apache.commons.codec.binary.Hex.encodeHexString(byte[]|ByteBuffer,
boolean).  Issue: CODEC-224. Thanks to Gary Gregory. 
o Add Automatic-Module-Name manifest entry for Java 9.  Issue:
CODEC-242. Thanks to Gary Gregory. 

Fixed Bugs:
o Base64.encodeBase64String could better use newStringUsAscii (ditto
encodeBase64URLSafeString)  Issue: CODEC-145. Thanks to Jesse Glick. 
o BaseNCodec: encodeToString and encodeAsString methods are identical
Issue: CODEC-144. 
o URLCodec is neither immutable nor threadsafe  Issue: CODEC-232. 
o StringUtils.equals(CharSequence cs1, CharSequence cs2) can fail with
String Index OBE  Issue: CODEC-231. 
o URLCodec.WWW_FORM_URL should be private  Issue: CODEC-230. 
o StringUtils.newStringxxx(null) should return null, not NPE  Issue:
CODEC-229. 
o Fix minor resource leaks  Issue: CODEC-225. Thanks to Svetlin Zarev. 
o Base32.HEX_DECODE_TABLE contains the wrong value 32  Issue: CODEC-200.
Thanks to Luciano Vernaschi. 
o Charsets Javadoc breaks build when using Java 8  Issue: CODEC-207.
Thanks to Gary Gregory. 
o Bug in HW rule in Soundex  Issue: CODEC-199. Thanks to Yossi Tamari. 
o Javadoc for SHA-224 DigestUtils methods should mention Java 1.8.0
restriction instead of 1.4.0.  Issue: CODEC-209. Thanks to Gary Gregory. 
o Don't deprecate Charsets Charset constants in favor of Java 7's
java.nio.charset.StandardCharsets  Issue: CODEC-219. Thanks to Gary
Gregory, Sebb. 

Changes:
o Base32.decode should support lowercase letters  Issue: CODEC-234.
Thanks to Christopher Schultz, Sebb. 
o Soundex should support more algorithm variants  Issue: CODEC-233.
Thanks to Yossi Tamari. 
o HmacUtils.updateHmac calls reset() unnecessarily  Issue: CODEC-221. 

Removed:
o Drop obsolete Ant build  Issue: CODEC-223.