blob: 6ff2f6dddf936e1bd078ea4f44a47a29b23ee8c0 [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to
You under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License. -->
<document>
<properties>
<title>Commons Codec - User guide</title>
<author email="dev@commons.apache.org">Commons Documentation Team</author>
</properties>
<body>
<!-- ================================================== -->
<section name="User guide">
<p> Codec consists of a set of utilities and a simple
framework for encoding and decoding text and binary data.
</p>
<subsection name="Binary Encoders">
<p>Interfaces and classes used by the various implementations in
the sub-packages.
</p>
<table>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/binary/Base32.html">Base32
</a>
</td>
<td>
Provides Base32 encoding and decoding as defined by
<a href="https://www.ietf.org/rfc/rfc4648.txt">RFC 4648</a>
</td>
</tr>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/binary/Base32InputStream.html">Base32InputStream
</a>
</td>
<td>Provides Base32 encoding and decoding in a streaming
fashion (unlimited size).
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/binary/Base64.html"> Base64
</a>
</td>
<td>
Provides Base64 encoding and decoding as defined by
<a href="https://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a>
</td>
</tr>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/binary/Base64InputStream.html">Base64InputStream
</a>
</td>
<td>Provides Base64 encoding and decoding in a streaming
fashion (unlimited size).
</td>
</tr>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/binary/BinaryCodec.html"> BinaryCodec
</a>
</td>
<td>Converts between byte arrays and strings of "0"s and
"1"s.
</td>
</tr>
<tr>
<td>
<a href="apidocs/org/apache/commons/codec/binary/Hex.html"> Hex
</a>
</td>
<td>Converts hexadecimal Strings.
</td>
</tr>
</table>
</subsection>
<subsection name="Digest Encoders">
<p>
<strong>WARNING:</strong> Some of the functions in this package might not be suitable for cryptography,
or are no longer cryptographically-secure.
</p>
<table>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/Blake3.html">Blake3</a>
</td>
<td>
Provides a pure Java implementation of the
<a href="https://github.com/BLAKE3-team/BLAKE3">Blake3 hash function</a> which can be used for computing
<a href="https://en.wikipedia.org/wiki/Cryptographic_hash_function">cryptographic hashes</a>
(message digests) which are extensible to arbitrary output lengths (known as an <i>extensible-output
function</i> or <i>XOF</i>), computing
<a href="https://en.wikipedia.org/wiki/Message_authentication_code">message authentication codes</a>
using a 32 byte (256-bit) secret key, computing subkeys from a primary key using a
<a href="https://en.wikipedia.org/wiki/Key_derivation_function">key derivation function</a>, and can be
used as the basis for a
<a href="https://en.wikipedia.org/wiki/Cryptographically-secure_pseudorandom_number_generator">
cryptographically-secure pseudorandom number generator</a>.
<br/>
<strong>WARNING:</strong> Blake3 is
<em>not</em> a password hashing algorithm! An algorithm such as
<a href="https://github.com/P-H-C/phc-winner-argon2">Argon2</a> is more appropriate for password hashing.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/Crypt.html">Crypt</a>
</td>
<td>
GNU libc crypt(3) compatible hash method.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/DigestUtils.html">DigestUtils</a>
</td>
<td>
Simplifies common
<a
href="https://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html">MessageDigest</a>
tasks and provides GNU libc crypt(3) compatible password hashing functions.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/HmacUtils.html">HmacUtils</a>
</td>
<td>
Simplifies common <a href="https://docs.oracle.com/javase/6/docs/api/javax/crypto/Mac.html">Mac</a> tasks.
<br/>
<strong>Note:</strong> Not all JCE implementations support all algorithms.
If not supported, an IllegalArgumentException is thrown.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/Md5Crypt.html">Md5Crypt</a>
</td>
<td>
The libc crypt() "$1$" and Apache "$apr1$" MD5-based hash algorithm.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/MurmurHash2.html">MurmurHash2</a>
</td>
<td>
Implementation of the MurmurHash2 32-bit and 64-bit hash functions.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/MurmurHash3.html">MurmurHash3</a>
</td>
<td>
Implementation of the MurmurHash3 32-bit and 128-bit hash functions.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/PureJavaCrc32.html">PureJavaCrc32</a>
</td>
<td>
A pure-java implementation of the CRC32 checksum that uses the same polynomial
as the built-in native CRC32.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/PureJavaCrc32C.html">PureJavaCrc32C</a>
</td>
<td>
A pure-java implementation of the CRC32 checksum that uses the CRC32-C polynomial,
the same polynomial used by iSCSI and implemented on many Intel chipsets supporting SSE 4.2.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/Sha2Crypt.html">Sha2Crypt</a>
</td>
<td>
SHA2-based Unix crypt implementation.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/UnixCrypt.html">UnixCrypt</a>
</td>
<td>
Unix crypt(3) algorithm implementation.
This class only implements the traditional 56 bit DES based algorithm.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/digest/XXHash32.html">XXHash32</a>
</td>
<td>
Implementation of the xxHash32 hash algorithm.
</td>
</tr>
</table>
</subsection>
<subsection name="Language Encoders">
<table>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/language/Caverphone1.html">Caverphone 1.0
</a>
</td>
<td>Encodes a string into a Caverphone 1.0 value.
</td>
</tr>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/language/Caverphone2.html">Caverphone 2.0
</a>
</td>
<td>Encodes a string into a Caverphone 2.0 value.
</td>
</tr>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/language/ColognePhonetic.html">Cologne Phonetic
</a>
</td>
<td>Encodes a string into a Cologne Phonetic value.
</td>
</tr>
<tr>
<td>
<a
href="apidocs/org/apache/commons/codec/language/DoubleMetaphone.html">Double Metaphone
</a>
</td>
<td>Encodes a string into a double metaphone value.
</td>
</tr>
<tr>
<td>
<a
href="apidocs/org/apache/commons/codec/language/Metaphone.html">Metaphone
</a>
</td>
<td>Encodes a string into a Metaphone value.
</td>
</tr>
<tr>
<td>
<a
href="apidocs/org/apache/commons/codec/language/RefinedSoundex.html">Refined Soundex
</a>
</td>
<td>Encodes a string into a Refined Soundex value.
</td>
</tr>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/language/Soundex.html">Soundex
</a>
</td>
<td>Encodes a string into a Soundex value.
</td>
</tr>
</table>
</subsection>
<subsection name="Network Encoders">
<table>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/BCodec.html"> BCodec
</a>
</td>
<td>
Identical to the Base64 encoding defined by
<a href="https://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>
and allows a character set to be specified.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/PercentCodec.html"> PercentCodec
</a>
</td>
<td>
Implements the Percent-Encoding scheme, as described in HTTP 1.1 specification.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/QCodec.html"> QCodec
</a>
</td>
<td>
Similar to the Quoted-Printable content-transfer-encoding
defined in
<a href="https://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>
and designed to allow text containing mostly ASCII
characters to be decipherable on an ASCII terminal without
decoding.
</td>
</tr>
<tr>
<td width="150">
<a
href="apidocs/org/apache/commons/codec/net/QuotedPrintableCodec.html"> QuotedPrintableCodec
</a>
</td>
<td>
Codec for the Quoted-Printable section of
<a href="https://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a>
.
</td>
</tr>
<tr>
<td width="150">
<a href="apidocs/org/apache/commons/codec/net/URLCodec.html"> URLCodec
</a>
</td>
<td>
Implements the
<code>www-form-urlencoded</code>
encoding scheme, also misleadingly known as URL encoding.
</td>
</tr>
</table>
</subsection>
</section>
<!-- ================================================== -->
</body>
</document>