Apache Commons Codec Release Notes Release History Version | Date | Description | 1.19.0 | 2025-07-19 | This is a feature and maintenance release. Java 8 or later is required. | 1.18.0 | 2025-01-24 | This is a feature and maintenance release. Java 8 or later is required. | 1.17.2 | 2024-12-28 | This is a feature and maintenance release. Java 8 or later is required. | 1.17.1 | 2024-07-12 | Feature and fix release. Requires a minimum of Java 8. | 1.17.0 | 2024-04-20 | Feature and fix release. Requires a minimum of Java 8. | 1.16.1 | 2024-02-04 | Feature and fix release. Requires a minimum of Java 8. | 1.16.0 | 2023-06-17 | Feature and fix release. Requires a minimum of Java 8. | 1.15 | 2020-09-01 | Feature and fix release. | 1.14 | 2019-12-30 | Feature and fix release. | 1.13 | 2019-07-20 | Feature and fix release. | 1.12 | 2019-02-04 | Feature and fix release. Requires a minimum of Java 7. | 1.11 | 2017-10-20 | Feature and fix release. | 1.10 | 5 November 2014 | Feature and fix release. | 1.9 | 20 December 2013 | Feature and fix release. | 1.8 | 19 April 2013 | Feature and fix release. Requires a minimum of Java 6. | 1.7 | 11 September 2012 | Feature and fix release. Requires a minimum of Java 6. | 1.6 | 20 November 2011 | Feature and fix release. Requires a minimum of Java 5. | 1.5 | 29 March 2011 | Feature and fix release. Requires a minimum of Java 1.4. | 1.4 | 9 August 2009 | Feature and fix release. Requires a minimum of Java 1.4. | 1.3 | 10 July 2004 | Feature and fix release. | 1.2 | 24 Nov 2003 | Feature and fix release. | 1.1 | 29 April 2003 | The first official release. Numerous projects had been depending on version 1.0-dev while in the Sandbox. | 1.0-dev | 25 April 2003 | Last release from the Sandbox. | Release 1.19.0 – 2025-07-19 Type | Changes | By |  | Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory. | ggregory |  | Refactor DigestUtils.updateDigest(MessageDigest, File) to use NIO. Thanks to Gary Gregory. | ggregory |  | Clarify Javadoc for org.apache.commons.codec.digest.UnixCrypt.crypt(byte[],String). Fixes CODEC-328. Thanks to Gary Gregory. | ggregory |  | Precompile regular expressions in DaitchMokotoffSoundex.Rule. Thanks to Gary Gregory. | ggregory |  | Precompile regular expressions in DaitchMokotoffSoundex.parseRules(Scanner, String, Map, Map). Thanks to Gary Gregory. | ggregory |  | Precompile regular expressions in Lang.loadFromResource(String, Languages). Thanks to Gary Gregory. | ggregory |  | Precompile regular expressions in PhoneticEngine.encode(String, LanguageSet). Thanks to Gary Gregory. | ggregory |  | Precompile regular expressions in org.apache.commons.codec.language.bm.Rule.parse*(*). Thanks to Gary Gregory. | ggregory |  | Remove redundant checks for whitespace in DaitchMokotoffSoundex.soundex(String, boolean). Thanks to Gary Gregory. | ggregory |  | Javadoc typo in Base16.java #380. Thanks to Sebastian Baunsgaard. | ggregory |  | Deprecate unused constant org.apache.commons.codec.language.bm.Rule.ALL. Thanks to Gary Gregory. | ggregory |  | org.apache.commons.codec.language.bm.Rule.parsePhonemeExpr(String) adds duplicate empty phoneme when input ends with |. Fixes CODEC-331. Thanks to IlikeCode, Gary Gregory. | ggregory |  | org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) does not remove special characters like punctuation. Fixes CODEC-331. Thanks to IlikeCode, Gary Gregory. | ggregory |  | Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.binary.StringUtils. Thanks to Gary Gregory. | ggregory |  | Fix PMD UnusedFormalParameter in private constructor in org.apache.commons.codec.binary.Base16. Thanks to Gary Gregory. | ggregory |  | Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Blake3. Thanks to Gary Gregory. | ggregory |  | Fix PMD UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Md5Crypt. Thanks to Gary Gregory. | ggregory |  | Fix PMD EmptyControlStatement in org.apache.commons.codec.language.Metaphone. Thanks to Gary Gregory. | ggregory |  | Fix SpotBugs [ERROR] Medium: org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder.setEncodeTable(byte[]) may expose internal representation by storing an externally mutable object into BaseNCodec$AbstractBuilder.encodeTable [org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder] At BaseNCodec.java:[line 131] EI_EXPOSE_REP2. Thanks to Gary Gregory. | ggregory |  | The method org.apache.commons.codec.binary.BaseNCodec.AbstractBuilder.setLineSeparator(byte...) now makes a defensive copy. Thanks to Gary Gregory. | ggregory |  | Avoid unnecessary String conversion in org.apache.commons.codec.language.bm.PhoneticEngine.applyFinalRules(PhonemeBuilder, Map). Thanks to Gary Gregory. | ggregory |  | Fix SpotBugs [ERROR] High: Potentially dangerous use of non-short-circuit logic in org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) [org.apache.commons.codec.language.DaitchMokotoffSoundex] At DaitchMokotoffSoundex.java:[line 350] NS_DANGEROUS_NON_SHORT_CIRCUIT. Thanks to Gary Gregory. | ggregory |  | Add HmacUtils.hmac(Path). Thanks to Gary Gregory. | ggregory |  | Add HmacUtils.hmacHex(Path). Thanks to Gary Gregory. | ggregory |  | Add PMD check to the default Maven goal. Thanks to Gary Gregory. | ggregory |  | Add SpotBugs check to the default Maven goal. Thanks to Gary Gregory. | ggregory |  | Bump org.apache.commons:commons-parent from 79 to 85 #375. Thanks to Gary Gregory, Dependabot. | ggregory |  | [test] Bump commons-io:commons-io from 2.18.0 to 2.20.0. Thanks to Gary Gregory. | ggregory |  | [test] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 #386. Thanks to Gary Gregory, Dependabot. | ggregory | Release 1.18.0 – 2025-01-24 Type | Changes | By |  | Add Base32.Builder.setHexDecodeTable(boolean). Thanks to Gary Gregory, Julian Reschke. | ggregory |  | Add Base32.Builder.setHexEncodeTable(boolean). Thanks to Gary Gregory, Julian Reschke. | ggregory |  | Bump org.apache.commons:commons-parent from 78 to 79. Thanks to Gary Gregory. | ggregory | Release 1.17.2 – 2024-12-28 Type | Changes | By |  | Rewrite DaitchMokotoffSoundex.soundex(String) using String.join(). Thanks to Gary Gregory. | ggregory |  | Use Resource.class to load resources, rather than its class loader #353. Fixes CODEC-324. Thanks to Michael Froh. | ggregory |  | Deprecate CharSequenceUtils.CharSequenceUtils(). Thanks to Gary Gregory. | ggregory |  | Deprecate Sha2Crypt.Sha2Crypt(). Thanks to Gary Gregory. | ggregory |  | Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #296, #305, #313. Thanks to Dependabot. | ggregory |  | Bump org.apache.commons:commons-parent from 71 to 78 #310, #312, #319, #323, #326, #333. Thanks to Gary Gregory. | ggregory |  | [test] Bump commons-io:commons-io from 2.16.1 to 2.18.0 #318, #341. Thanks to Gary Gregory, Dependabot. | ggregory |  | Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1 #332. Thanks to Gary Gregory, Dependabot. | ggregory | Release 1.17.1 – 2024-07-12 Type | Changes | By |  | Md5Crypt now throws IllegalArgumentException on an invalid prefix. Thanks to Gary Gregory. | ggregory |  | Bump org.apache.commons:commons-parent from 69 to 71 #286. Thanks to Gary Gregory. | ggregory |  | Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to 1.24 #293. Thanks to Dependabot. | ggregory |  | Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0 #292. Thanks to Dependabot. | ggregory | Release 1.17.0 – 2024-04-20 Type | Changes | By |  | Wrong output of DoubleMetaphone in 1.16.1. Fixes CODEC-320. Thanks to Martin Frydl, Gary Gregory. | ggregory |  | Optimize memory allocation in PhoneticEngine. Thanks to Gary Gregory. | ggregory |  | BCodec and QCodec encode() methods throw UnsupportedCharsetException instead of EncoderException. Thanks to Gary Gregory. | ggregory |  | Set Javadoc link to latest Java API LTS version. Thanks to Gary Gregory. | ggregory |  | Base32 constructor fails-fast with a NullPointerException if the custom alphabet array is null. Thanks to Gary Gregory. | ggregory |  | Base32 constructor makes a defensive copy of the line separator array. Thanks to Gary Gregory. | ggregory |  | Base64 constructor makes a defensive copy of the line separator array. Thanks to Gary Gregory. | ggregory |  | Base64 constructor makes a defensive copy of a custom alphabet array. Thanks to Gary Gregory. | ggregory |  | Add override org.apache.commons.codec.language.bm.Rule.PhonemeExpr.size(). Thanks to Gary Gregory. | ggregory |  | Add support for Base64 custom alphabets #266. Thanks to Chris Kocel, Gary Gregory. | ggregory |  | Add Base64.Builder (allows custom alphabets). Thanks to Gary Gregory. | ggregory |  | Add Base32.Builder (allows custom alphabets). Thanks to Gary Gregory. | ggregory |  | Add Base64 support for a custom padding byte (like Base32). Thanks to Gary Gregory. | ggregory |  | Bump org.apache.commons:commons-parent from 66 to 69 #250, #261. Thanks to Dependabot, Gary Gregory. | ggregory |  | Bump commons-io:commons-io from 2.15.1 to 2.16.1 #258, #265. Thanks to Dependabot, Gary Gregory. | ggregory | Release 1.16.1 – 2024-02-04 Type | Changes | By |  | Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory. | ggregory |  | Test clean ups. Fixes CODEC-295. Thanks to Gary Gregory. | ggregory |  | [StepSecurity] ci: Harden GitHub Actions #187. Thanks to step-security-bot, Gary Gregory. | ggregory |  | Correct error in Base64 Javadoc #188. Fixes CODEC-295. Thanks to Evan Saulpaugh. | ggregory |  | Add minimum Java version in changes.xml #186. Fixes CODEC-295. Thanks to Olivier Jaquemet, Gary Gregory. | ggregory |  | Documentation update for the org.apache.commons.codec.digest.* package #208. Fixes CODEC-310. Thanks to Yakov Shafranovich. | ggregory |  | Precompile regular expression in UnixCrypt.crypt(byte[], String). Thanks to Gary Gregory. | ggregory |  | Fix possible IndexOutOfBoundException in PhoneticEngine.encode method #223. Fixes CODEC-315. Thanks to Arthur Chan, Gary Gregory. | ggregory |  | Fix possible ArrayIndexOutOfBoundsException in QuotedPrintableCodec.encodeQuotedPrintable() method #221. Fixes CODEC-313. Thanks to Arthur Chan, Gary Gregory. | ggregory |  | Fix possible StringIndexOutOfBoundException in MatchRatingApproachEncoder.encode() method #220. Fixes CODEC-312. Thanks to Arthur Chan, Gary Gregory. | ggregory |  | Fix possible ArrayIndexOutOfBoundException in RefinedSoundex.getMappingCode() #219. Fixes CODEC-311. Thanks to Arthur Chan, Gary Gregory. | ggregory |  | Fix possible IndexOutOfBoundsException in PercentCodec.insertAlwaysEncodeChars() method #222. Fixes CODEC-314. Thanks to Arthur Chan, Gary Gregory. | ggregory |  | Deprecate UnixCrypt 0-argument constructor. Thanks to Gary Gregory. | ggregory |  | Deprecate Md5Crypt 0-argument constructor. Thanks to Gary Gregory. | ggregory |  | Deprecate Crypt 0-argument constructor. Thanks to Gary Gregory. | ggregory |  | Deprecate StringUtils 0-argument constructor. Thanks to Gary Gregory. | ggregory |  | Deprecate Resources 0-argument constructor. Thanks to Gary Gregory. | ggregory |  | Deprecate Charsets 0-argument constructor. Thanks to Gary Gregory. | ggregory |  | Deprecate CharEncoding 0-argument constructor. Thanks to Gary Gregory. | ggregory |  | Add missing version for animal-sniffer-maven-plugin. Thanks to Gary Gregory. | ggregory |  | Bump commons-parent from 58 to 66. Thanks to Dependabot, Gary Gregory. | ggregory |  | Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory. | ggregory |  | Bump commons-io from 2.13.0 to 2.15.1. Thanks to Gary Gregory. | ggregory | Release 1.16.0 – 2023-06-17 Type | Changes | By |  | Minor improvements #67. Fixes CODEC-295. Thanks to Arturo Bernal. | ggregory |  | Remove duplicated words from Javadocs. Thanks to James Gan. | aherbert |  | Simplify assertion #84. Fixes CODEC-301. Thanks to Alexander Pinske, Alex Herbert. | aherbert |  | Simplify assertion #84. Fixes CODEC-300. Thanks to Arturo Bernal. | ggregory |  | Use Standard Charset object #82. Fixes CODEC-298. Thanks to Arturo Bernal. | ggregory |  | Use String.contains() functions #125. Thanks to Arturo Bernal. | ggregory |  | Avoid use toString() or substring() in favor of a simplified expression #126. Thanks to Arturo Bernal. | ggregory |  | Fix byte-skipping in Base16 decoding #135. Fixes CODEC-305. Thanks to Florian. | aherbert |  | Fix several typos, improve writing in some javadocs #139. Thanks to Marc Wrobel. | kinow |  | BaseNCodecOutputStream.eof() should not throw IOException. Thanks to Gary Gregory. | ggregory |  | Javadoc improvements and cleanups. Thanks to Gary Gregory. | ggregory |  | Deprecate BaseNCodec.isWhiteSpace(byte) and use Character.isWhitespace(int). Thanks to Gary Gregory. | ggregory |  | Add support for Blake3 family of hashes. Fixes CODEC-296. Thanks to Matt Sicker. | mattsicker |  | Add github/codeql-action. | ggregory |  | Bump actions/cache from v2 to v3.0.10 #75, #99, #119, #138, #149, #152. Thanks to Dependabot, Gary Gregory. | ggregory |  | Bump actions/setup-java from v1.4.1 to 3.5.1 #60, #62, #121. Thanks to Dependabot, Gary Gregory. | ggregory |  | Bump actions/checkout from 2.3.2 to 3.1.0 #65, #98, #114, #153. Thanks to Dependabot, Gary Gregory. | ggregory |  | Bump commons-parent from 52 to 58, #147, #165, #170. Thanks to Dependabot, Gary Gregory. | ggregory |  | Bump junit from 4.13.1 to 5.9.1 #76, #39, #140, #148. Fixes CODEC-285. Thanks to Dependabot, John Patrick. | ggregory |  | Bump Java 7 to 8. Thanks to Gary Gregory. | ggregory |  | Bump japicmp-maven-plugin from 0.14.3 to 0.17.1. Thanks to Gary Gregory. | ggregory |  | Bump jacoco-maven-plugin from 0.8.5 to 0.8.8 (Fixes Java 15 builds). Thanks to Gary Gregory. | ggregory |  | Bump maven-surefire-plugin from 2.22.2 to 3.0.0-M7 #122, #134. Thanks to Gary Gregory. | ggregory |  | Bump maven-javadoc-plugin from 3.2.0 to 3.4.1. Thanks to Gary Gregory. | ggregory |  | Bump animal-sniffer-maven-plugin from 1.19 to 1.22. Thanks to Gary Gregory. | ggregory |  | Bump maven-pmd-plugin from 3.13.0 to 3.19.0, #133, #142, #145. Thanks to Gary Gregory, Dependabot. | ggregory |  | Bump pmd from 6.47.0 to 6.52.0. Thanks to Gary Gregory. | ggregory |  | Bump maven-checkstyle-plugin from 2.17 to 3.2.0 #143. Thanks to Gary Gregory. | ggregory |  | Bump checkstyle from 8.45.1 to 9.3 #97, #100, #101, #103. Thanks to Dependabot. | kinow, ggregory |  | Bump taglist-maven-plugin from 2.4 to 3.0.0 #102. Thanks to Dependabot. | ggregory |  | Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. | ggregory | Release 1.15 – 2020-09-01 Type | Changes | By |  | MurmurHash3: Ensure hash128 maintains the sign extension bug. Fixes CODEC-264. Thanks to Andy Seaborne. | aherbert |  | Base32/Base64/BCodec: Added strict decoding property to control handling of trailing bits. Default lenient mode discards them without error. Strict mode raise an exception. Fixes CODEC-280. | aherbert |  | Base32/Base64 Input/OutputStream: Added strict decoding property to control handling of trailing bits. Default lenient mode discards them without error. Strict mode raise an exception. Fixes CODEC-289. | aherbert |  | Update tests from JUnit 4.12 to 4.13. Thanks to Gary Gregory. | ggregory |  | Base16Codec and Base16Input/OutputStream. Fixes CODEC-290. Thanks to Adam Retter. | aherbert |  | Hex encode/decode with existing arrays. Fixes CODEC-291. Thanks to Adam Retter. | aherbert |  | Update actions/checkout from v1 to v2.3.2 #50, #56. Thanks to Dependabot. | ggregory |  | Update actions/setup-java from v1.4.0 to v1.4.1 #57. Thanks to Dependabot. | ggregory | Release 1.14 – 2019-12-30 Type | Changes | By |  | Hex: Allow encoding read-only ByteBuffer. Fixes CODEC-261. | aherbert |  | Hex: Only use an available ByteBuffer backing array if the length equals the remaining byte count. Fixes CODEC-259. | aherbert |  | MurmurHash3: Deprecate hash64 methods and hash methods accepting a String that use the default encoding. Fixes CODEC-268. | aherbert |  | BaseNCodec to expand buffer using overflow conscious code. Fixes CODEC-265. | aherbert |  | Base32/64: Fixed decoding check that all the final trailing bits to discard are zero. Fixes CODEC-270. | aherbert |  | Add MurmurHash3.hash128x64 methods to fix sign extension error during seeding in hash128 methods. Fixes CODEC-264. Thanks to Claude Warren. | aherbert |  | Add MurmurHash3.hash32x86 methods and IncrementalHash32x86 to fix sign extension error in hash32 methods. Fixes CODEC-267. Thanks to Claude Warren. | aherbert |  | Allow repeat calls to MurmurHash3.IncrementalHash32.end() to generate the same value. Fixes CODEC-269. | aherbert |  | Add RandomAccessFile digest methods #31. Fixes CODEC-272. Thanks to Behrang, Alex Herbert, Gary Gregory. | ggregory |  | Add Path APIs to org.apache.commons.codec.digest.DigestUtils similar to File APIs. Fixes CODEC-273. Thanks to Gary Gregory. | ggregory |  | Add SHA-512/224 and SHA-512/256 to DigestUtils for Java 9 and up. Fixes CODEC-274. Thanks to Gary Gregory. | ggregory |  | Add missing note in javadoc when sign extension error is present #34. Fixes CODEC-275. Thanks to Claude Warren. | ggregory |  | Reliance on default encoding in MurmurHash2 and MurmurHash3. Fixes CODEC-276. Thanks to Gary Gregory. | ggregory |  | Don't reload standard Charsets in org.apache.commons.codec.Charsets. Fixes CODEC-277. Thanks to Gary Gregory. | ggregory |  | Deprecate Charset constants in org.apache.commons.codec.Charsets in favor of java.nio.charset.StandardCharsets. Fixes CODEC-278. Thanks to Gary Gregory. | ggregory | Release 1.13 – 2019-07-20 Type | Changes | By |  | ColognePhonetic handles x incorrectly. Fixes CODEC-255. Thanks to Holger Grote. | sebb |  | ColognePhonetic does not treat the letter H correctly. Fixes CODEC-254. Thanks to Holger Grote. | sebb |  | Reject any decode request for a value that is impossible to encode to for Base32/Base64 rather than blindly decoding. Fixes CODEC-134. | tmousaw-ptc |  | MurmurHash2 for 32-bit or 64-bit value. Fixes CODEC-236. Thanks to Viliam Holub. | melloware |  | MurmurHash3 for 32-bit or 128-bit value. Fixes CODEC-236. Thanks to Austin Appleby. | melloware |  | Broken direct java.nio.ByteBuffer support in org.apache.commons.codec.binary.Hex. Fixes CODEC-236. Thanks to Tomas Shestakov, Gary Gregory. | ggregory | Release 1.12 – 2019-02-04 Type | Changes | By |  | B64 salt generator: Random -> ThreadLocalRandom. Fixes CODEC-252. | chtompki |  | Wrong value calculated by Cologne Phonetic if a special character is placed between equal letters. Fixes CODEC-250. Thanks to Alex Volodko. | sebb |  | Update from Java 6 to Java 7. Fixes CODEC-244. | ggregory |  | Add Percent-Encoding Codec (described in RFC3986 and RFC7578). Fixes CODEC-240. Thanks to Ioannis Sermetziadis. | ggregory |  | ColognePhoneticTest.testIsEncodeEquals missing assertions. Fixes CODEC-246. Thanks to Oscar Luis Vera Pérez. | ggregory |  | Add SHA-3 methods in DigestUtils. Fixes CODEC-251. Thanks to Gary Gregory. | ggregory | Release 1.11 – 2017-10-20 Type | Changes | By |  | Add support for XXHash32. Fixes CODEC-241. | - |  | Base32.decode should support lowercase letters. Fixes CODEC-234. Thanks to Christopher Schultz, Sebb. | ggregory |  | Soundex should support more algorithm variants. Fixes CODEC-233. Thanks to Yossi Tamari. | sebb |  | Base64.encodeBase64String could better use newStringUsAscii (ditto encodeBase64URLSafeString). Fixes CODEC-145. Thanks to Jesse Glick. | sebb |  | BaseNCodec: encodeToString and encodeAsString methods are identical. Fixes CODEC-144. | sebb |  | URLCodec is neither immutable nor threadsafe. Fixes CODEC-232. | sebb |  | StringUtils.equals(CharSequence cs1, CharSequence cs2) can fail with String Index OBE. Fixes CODEC-231. | sebb |  | URLCodec.WWW_FORM_URL should be private. Fixes CODEC-230. | sebb |  | StringUtils.newStringxxx(null) should return null, not NPE. Fixes CODEC-229. | sebb |  | Fluent interface for DigestUtils. Fixes CODEC-220. | sebb |  | Fluent interface for HmacUtils. Fixes CODEC-222. | sebb |  | Fix minor resource leaks. Fixes CODEC-225. Thanks to Svetlin Zarev. | jochen |  | Drop obsolete Ant build. Fixes CODEC-223. | sebb |  | Add support for CRC32-C. Fixes CODEC-171. Thanks to Brett Okken. | sebb |  | HmacUtils.updateHmac calls reset() unnecessarily. Fixes CODEC-221. | sebb |  | Base32.HEX_DECODE_TABLE contains the wrong value 32. Fixes CODEC-200. Thanks to Luciano Vernaschi. | sebb |  | Charsets Javadoc breaks build when using Java 8. Fixes CODEC-207. Thanks to Gary Gregory. | ggregory |  | Bug in HW rule in Soundex. Fixes CODEC-199. Thanks to Yossi Tamari. | ggregory/sebb |  | Javadoc for SHA-224 DigestUtils methods should mention Java 1.8.0 restriction instead of 1.4.0. Fixes CODEC-209. Thanks to Gary Gregory. | ggregory |  | Don't deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets. Fixes CODEC-219. Thanks to Gary Gregory, Sebb. | ggregory |  | Add HmacAlgorithms.HMAC_SHA_224 (Java 8 only). Fixes CODEC-217. Thanks to Gary Gregory. | ggregory |  | Support JEP 287: SHA-3 Hash Algorithms. Fixes CODEC-213. Thanks to Gary Gregory. | ggregory |  | Create a minimal Digest command line utility: org.apache.commons.codec.digest.Digest. Fixes CODEC-212. Thanks to Gary Gregory. | ggregory |  | Add DigestUtils.getDigest(String, MessageDigest). Fixes CODEC-210. Thanks to Gary Gregory. | ggregory |  | Make some DigestUtils APIs public. Fixes CODEC-208. Thanks to Gary Gregory. | ggregory |  | Add java.io.File APIs to MessageDigestAlgorithm. Fixes CODEC-206. Thanks to Gary Gregory. | ggregory |  | BaseNCodecOutputStream only supports writing EOF on close(). Fixes CODEC-183. Thanks to Steven Wurster. | ggregory |  | Support SHA-224 in DigestUtils on Java 8. Fixes CODEC-195. Thanks to Gary Gregory. | ggregory |  | Support java.nio.ByteBuffer in org.apache.commons.codec.binary.Hex. Fixes CODEC-194. Thanks to Gary Gregory. | ggregory |  | Support java.nio.ByteBuffer in DigestUtils. Fixes CODEC-193. Thanks to Michael Donaghy. | ggregory |  | Add BaseNCodec.encode(byte[], int, int) input with offset and length parameters for Base64 and Base32. Fixes CODEC-202. Thanks to Oleg Kalnichevski. | ggregory |  | Add convenience method decodeHex(String). Fixes CODEC-203. Thanks to Gary Gregory. | ggregory |  | Add faster CRC32 implementation. Fixes CODEC-205. Thanks to Gary Gregory. | ggregory |  | Add convenience API org.apache.commons.codec.binary.Hex.encodeHexString(byte[]|ByteBuffer, boolean). Fixes CODEC-224. Thanks to Gary Gregory. | ggregory |  | Add Automatic-Module-Name manifest entry for Java 9. Fixes CODEC-242. Thanks to Gary Gregory. | ggregory | Release 1.10 – 5 November 2014 Type | Changes | By |  | Add Daitch-Mokotoff Soundex. Fixes CODEC-192. Thanks to Thomas Neidhart. | ggregory |  | QuotedPrintableCodec does not support soft line break per the 'quoted-printable' example on Wikipedia. Fixes CODEC-121. Thanks to Thomas Neidhart, Java John. | ggregory |  | Added clarification to Javadoc of Base64 concerning the use of the urlSafe parameter. Fixes CODEC-185. Thanks to Sean Busbey. | tn |  | Added clarification to the Javadoc of Base[32|64]OutputStream that it is mandatory to call close(). Fixes CODEC-191. Thanks to Igor Savin. | tn |  | Add support for HMAC Message Authentication Code (MAC) digests. Fixes CODEC-188. Thanks to Hendrik Saly. | ggregory |  | Beider Morse Phonetic Matching producing incorrect tokens. Fixes CODEC-187. Thanks to Michael Tobias, Thomas Neidhart. | ggregory |  | NullPointerException in DoubleMetaPhone.isDoubleMetaphoneEqual when using empty strings. Fixes CODEC-184. Thanks to Cyrille Artho. | ggregory |  | Make possible to provide padding byte to BaseNCodec in constructor. Fixes CODEC-181. Thanks to Ivan Martinez-Ortiz. | ggregory |  | Fix Javadoc 1.8.0 errors. Fixes CODEC-180. Thanks to Ville Skyttä. | ggregory |  | Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets. Fixes CODEC-178. | ggregory |  | Fix Java 8 build Javadoc errors. Fixes CODEC-189. | ggregory |  | Update from commons-parent 34 to 35. Fixes CODEC-190. | ggregory | Release 1.9 – 20 December 2013 Type | Changes | By |  | Improve performance of Beider Morse encoder. Fixes CODEC-174. Thanks to Thomas Champagne. | ggregory |  | Beider Morse does not close Scanners used to read config files. Fixes CODEC-175. | ggregory |  | Base32 decode table has spurious value. Fixes CODEC-172. Thanks to Matt Bishop. | sebb |  | Link broken in Metaphone Javadoc. Fixes CODEC-170. Thanks to Ron Wheeler, Henri Yandell. | ggregory |  | Spelling fixes in Javadoc and comments. Fixes CODEC-176. Thanks to Ville Skyttä. | ggregory | Release 1.8 – 19 April 2013 Type | Changes | By |  | Add DigestUtils.updateDigest(MessageDigest, InputStream). Fixes CODEC-168. Thanks to Daniel Cassidy. | ggregory |  | Add JUnit to test our decode with pad character in the middle. Fixes CODEC-167. | julius |  | Add Match Rating Approach (MRA) phonetic algorithm encoder. Fixes CODEC-161. Thanks to crice. | ggregory |  | ColognePhonetic encoder unnecessarily creates many char arrays on every loop run. Fixes CODEC-163. Thanks to leo141. | ggregory |  | Base64.encodeBase64URLSafeString doesn't add padding characters at the end. Fixes CODEC-160. | sebb | Release 1.7 – 11 September 2012 Type | Changes | By |  | DigestUtils: Add MD2 APIs. Fixes CODEC-157. Thanks to ggregory. | ggregory |  | DigestUtils: add APIs named after standard algorithm name SHA-1. Fixes CODEC-156. Thanks to ggregory. | ggregory |  | DigestUtils.getDigest(String) should throw IllegalArgumentException instead of RuntimeException. Fixes CODEC-155. Thanks to ggregory. | ggregory |  | Create a class MessageDigestAlgorithms to define standard algorithm names. Fixes CODEC-153. Thanks to ggregory. | ggregory |  | DigestUtils.getDigest(String) loses the original exception. Fixes CODEC-152. Thanks to ggregory. | ggregory |  | Remove unnecessary attempt to fill up the salt variable in UnixCrypt. Fixes CODEC-151. Thanks to lathspell. | ggregory |  | Remove unnecessary call to Math.abs(). Fixes CODEC-150. Thanks to lathspell. | ggregory |  | More tests and minor things. Fixes CODEC-148. Thanks to lathspell. | ggregory |  | Added regression tests for PhoneticEngine based on Solr-3.6.0. Fixes CODEC-146. Thanks to Julius Davies. | tn |  | BeiderMorseEncoder/PhoneticEngine: make results deterministic by using a LinkedHashSet instead of a HashSet. Fixes CODEC-147. | tn |  | StringBuffer could be replaced by StringBuilder for local variables. Fixes CODEC-143. | sebb |  | DigestUtils: add updateDigest methods and make methods public. Fixes CODEC-139. Thanks to dsebastien. | ggregory |  | Add classes for MD5/SHA1/SHA-512-based Unix crypt(3) hash variants. Fixes CODEC-133. Thanks to lathspell. | ggregory |  | Base64 encode() method is no longer thread-safe, breaking clients using it as a shared BinaryEncoder. Note: the fix breaks binary compatibility, however the changes are to a class (BaseNCodec) which is intended for internal use. Fixes CODEC-96. Thanks to sebb. | ggregory |  | Complete FilterInputStream interface for BaseNCodecInputStream. Fixes CODEC-138. | sebb |  | Use Charset objects when possible, create Charsets for required character encodings. Fixes CODEC-136. | ggregory |  | BeiderMorseEncoder OOM issues. Fixes CODEC-132. Thanks to rcmuir. | ggregory |  | DoubleMetaphone Javadoc contains dead links. Fixes CODEC-131. Thanks to smolav. | tn |  | Base64InputStream.skip skips underlying stream, not output. Fixes CODEC-130. Thanks to tn. | ggregory |  | Implement NYSIIS phonetic encoder. Fixes CODEC-63. Thanks to tn. | ggregory | Release 1.5 – 29 March 2011 Type | Changes | By |  | Added new Base32 encoder. Fixes CODEC-88. | sebb |  | new Base64().encode() appends a CRLF, and chunks results into 76 character lines. Fixes CODEC-89. | sebb |  | Many test cases use getBytes() which uses the default platform encoding so tests may fail on some platforms. Fixes CODEC-92. | sebb |  | Add test(s) to check that encodeBase64() does not chunk output. Fixes CODEC-93. Thanks to sebb. | sebb, julius, ggregory |  | Base64 default constructor behavior changed to enable chunking in 1.4. Fixes CODEC-97. Thanks to mjryall. | sebb |  | Base64.encodeBase64String() shouldn't chunk. Fixes CODEC-99. Thanks to julius. | ggregory |  | Base64InputStream#read(byte[]) incorrectly returns 0 at end of any stream which is multiple of 3 bytes long. Fixes CODEC-101. Thanks to balusc. | julius |  | Typo in DecoderException message thrown from Hex.decodeHex. Fixes CODEC-103. Thanks to gnuf. | bayard |  | ArrayIndexOutOfBoundsException when doing multiple reads() on encoding Base64InputStream. Fixes CODEC-105. Thanks to zak. | julius, ggregory |  | Add the "Kölner Phonetik" encoder (Cologne Phonetic) to codec.lang. Fixes CODEC-106. Thanks to it2mmeyerfa. | bayard |  | org.apache.commons.codec.net.URLCodec.ESCAPE_CHAR isn't final but should be. Fixes CODEC-111. Thanks to ggregory. | ggregory |  | Base64.encodeBase64(byte[] binaryData, boolean isChunked, boolean urlSafe, int maxResultSize) throws IAE for valid maxResultSize if isChunked is false. Fixes CODEC-112. Thanks to sebb. | sebb |  | org.apache.commons.codec.language.RefinedSoundex.US_ENGLISH_MAPPING should be package protected MALICIOUS_CODE. Fixes CODEC-113. Thanks to ggregory. | ggregory |  | org.apache.commons.codec.language.Soundex.US_ENGLISH_MAPPING should be package protected MALICIOUS_CODE. Fixes CODEC-114. Thanks to ggregory. | ggregory |  | DoubleMetaphone.maxCodeLen should probably be private. Fixes CODEC-115. Thanks to sebb. | ggregory |  | Remove deprecated package private method Base64.discardWhitespace(byte[]). Fixes CODEC-116. Thanks to ggregory. | ggregory |  | Caverphone encodes names starting and ending with "mb" incorrectly. Fixes CODEC-117. Thanks to ggregory. | ggregory |  | Split Caverphone class into two classes for Caverphone 1.0 and 2.0. Fixes CODEC-118. Thanks to ggregory. | ggregory | Release 1.4 – 9 August 2009 Type | Changes | By |  | Regression: Base64.encode(chunk=true) has a bug when input length is multiple of 76. Fixes CODEC-80. Thanks to Julius Davies. | ggregory |  | Base64 bug with empty input (new byte[0]). Fixes CODEC-77. Thanks to Julius Davies. | ggregory |  | Make Base64 URL-safe. Fixes CODEC-75. Thanks to Julius Davies. | ggregory |  | Allow for uppercase letters output in Hex.encodeHex(). Fixes CODEC-74. | ggregory |  | Soundex and RefinedSoundex issues with character arrays. Fixes CODEC-72. Thanks to Sebb. | bayard |  | Base64.isArrayByteBase64() method is inefficient for large byte arrays. Fixes CODEC-71. Thanks to Sebb. | bayard |  | Thread safety and malicious code safety improvements. Fixes CODEC-70. Thanks to Sebb. | bayard |  | isBase64 throws ArrayIndexOutOfBoundsException on some non-BASE64 bytes. Fixes CODEC-68. Thanks to Robert Rodewald. | bayard |  | Fix case-insensitive string handling. Fixes CODEC-65. Thanks to Benjamin Bentmann. | bayard |  | Base64.encodeBase64() throws NegativeArraySizeException on large files. Fixes CODEC-61. Thanks to Igor Slepchin. | ggregory |  | Implement Caverphone. Fixes CODEC-60. | bayard |  | Character set used by Base64 not documented. Fixes CODEC-58. Thanks to Julius Davies. | ggregory |  | RefinedSoundex creates instance before al fields have been initialized. Fixes CODEC-56. Thanks to Sebb. | bayard |  | Digest on InputStreams. Fixes CODEC-52. Thanks to Niklas Gustavsson. | bayard |  | 2 Test failures in SoundexTest. Fixes CODEC-51. | bayard |  | Patch to add crypto-compatible BigInteger encoding support to Base64. Fixes CODEC-40. Thanks to Chris Black. | bayard |  | DigestUtils: Add methods for SHA-256, SHA-384, and SHA-512. Fixes CODEC-39. Thanks to Jamie Flournoy. | ggregory |  | Using US_ENGLISH in Soundex caused an NullPointerException. Fixes CODEC-10. Thanks to Reggie Riser. | tobrien |  | Source tarball spews files all over the place. Fixes CODEC-6. Thanks to David Tonhofer. | tobrien |  | Base64.isArrayByteBase64() throws an ArrayIndexOutOfBoundsException for negative octets. Fixes CODEC-22. Thanks to Piero Ottuzzi. | ggregory |  | Streaming Base64 (Base64InputStream and Base64OutputStream added). Fixes CODEC-69. Thanks to Julius Davies. | jochen |  | Base64: Improve Code Coverage. Fixes CODEC-78. Thanks to Julius Davies. | ggregory |  | Add methods to Base64 which work with String instead of byte[]. Fixes CODEC-59. Thanks to Julius Davies. | ggregory |  | Base64's new constructor parameters ignored. Fixes CODEC-81. Thanks to Julius Davies. | ggregory |  | Improve Double Metaphone test coverage. Fixes CODEC-83. | niallp |  | Double Metaphone bugs in alternative encoding. Fixes CODEC-84. | niallp |  | Make string2byte conversions independent of platform default encoding. Fixes CODEC-73. Thanks to Benjamin Bentmann. | ggregory | Release 1.3 – 10 July 2004 Type | Changes | By |  | BinaryCodec: Encodes and decodes binary to and from Strings of 0s and 1s. Fixes CODEC-21. Thanks to Alex Karasulu. | ggregory, tobrien |  | QuotedPrintableCodec: Codec for RFC 1521 MIME (Multipurpose Internet Mail Extensions) Part One. Rules #3, #4, and #5 of the quoted-printable spec are not implemented yet. See also issue CODEC-46. Fixes CODEC-41. Thanks to Oleg Kalnichevski. | ggregory |  | BCodec: Identical to the Base64 encoding defined by RFC 1521 and allows a character set to be specified. Fixes CODEC-41. Thanks to Oleg Kalnichevski. | ggregory |  | QCodec: Similar to the Quoted-Printable content-transfer-encoding defined in RFC 1521 and designed to allow text containing mostly ASCII characters to be decipherable on an ASCII terminal without decoding. Fixes CODEC-41. Thanks to Oleg Kalnichevski. | ggregory |  | Soundex: Implemented the DIFFERENCE algorithm. Fixes CODEC-45. Thanks to Matthew Inger. | ggregory |  | RefinedSoundex: Implemented the DIFFERENCE algorithm. Fixes CODEC-45. Thanks to Matthew Inger. | ggregory |  | This version is released under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a> , please see LICENSE.txt. Previous versions were released under the <a href="http://www.apache.org/licenses/LICENSE-1.1">Apache License 1.1</a> | ggregory |  | The Board recommendation to remove Javadoc author tags has been implemented. All author tags are now "Apache Software Foundation". | ggregory |  | The default URL encoding logic was broken. Fixes CODEC-25. Thanks to Oleg Kalnichevski. | ggregory |  | Base64 chunked encoding not compliant with RFC 2045 section 2.1 CRLF. Fixes CODEC-31. Thanks to Gary D. Gregory. | ggregory |  | Hex converts illegal characters to 255. Fixes CODEC-5. | ggregory |  | Metaphone now correctly handles a silent B in a word that ends in MB. "COMB" is encoded as "KM", before this fix "COMB" was encoded as "KMB". Fixes CODEC-17. | tobrien |  | Added missing tags in Javadoc comments. | ggregory |  | General Javadoc improvements. | ggregory | Release 1.2 – 24 Nov 2003 Type | Changes | By |  | URLCodec: Implements the www-form-urlencoded encoding scheme. Thanks to Oleg Kalnichevski. | tobrien |  | DigestUtils: Calculates MD5 and SHA digests. Thanks to Dave Dribin, David Graham. | tobrien |  | Modified Base64 to remedy non-compliance with RFC 2045. Non-Base64 characters were not being discarded during the decode. RFC 2045 explicitly states that all characters outside of the base64 alphabet are to be ignored. Fixes CODEC-26. Thanks to Brian Ewins. | tobrien |  | Hex.decode(Object) throws a ClassCastException when a String argument is passed in. Fixes CODEC-4. | ggregory |  | Soundex: The HW rule is not applied; hyphens and apostrophes are not ignored. Fixes CODEC-3. | ggregory |  | Soundex.setMaxLength causes bugs and is not needed. Calling Soundex.setMaxLength() with a value of 2 or less causes the wrong answer to be returned. Since the encoding returned by Soundex is always of length 4 by definition (we do not use the '-' in as a letter-nnn separator) the need for a maxLength attribute is not needed. Deprecate the field and accessor methods. Fixes CODEC-29. | ggregory |  | Fix in Metaphone relating to the handling of the maximum code length. | Members | Release 1.1 – 29 April 2003 Type | Changes | By |  | A newer version of the Base64 class reflecting improvements from both the commons-httpclient and xml-rpc versions of code forked from catalina. | Members |  | Base64 class from commons-httpclient in org.apache.commons.codec.base64 has been retained for backwards compatibility but has been deprecated. | Members |  | Soundex class from commons-util in org.apache.commons.codec. | Members |  | Metaphone class from commons-util in org.apache.commons.codec. | Members |  | RefinedSoundex class in org.apache.commons.codec. | tobrien |  | Encoder/Decoder interfaces in org.apache.commons. | Members |  | String and Binary specific Encoder/Decoder interfaces in org.apache.commons. | Members |  | StringEncoderComparator replaces the SoundexComparator from the language package. | Members |  | Base64 now discards whitespace characters when decoding encoded content. | Members | Release 1.0-dev – 25 April 2003 Type | Changes | By |  | Base64 class from commons-httpclient in org.apache.commons.codec.base64. | tobrien |  | Soundex class from commons-util in org.apache.commons.codec. | tobrien |  | Metaphone class from commons-util in org.apache.commons.codec. | tobrien |  | SoundexComparator class from commons-util in org.apache.commons.codec. | Members | |