**Name** |
Type and availability |
Objects implementing it |
Notes |

**MD5** |
Hash/HMAC function - **freeware**. |
HashObject, SFStreamDigest |
128 bit hash length
considered old and non-appropriate for applications with high
security requirements. Its popularity makes it good choice for
usage as a checksum, some software licensing schemes, password
hashing for the WEB. |

**SHA1** |
Hash/HMAC function - **freeware**. |
HashObject, SFStreamDigest |
160 bit hash length,
While the new applications should prefer longer SHA this one is
in usage in a huge number of existing applications. Primary
usage as checksum. The good security level and the relatively
short hash length make it perfect choice for data consistency
applications. |

**SHA256** |
Hash/HMAC function - **freeware**. |
HashObject, SFStreamDigest |
256 bit hash length,
The balance between the hash length and the security offered by
the function makes it the preferred choice today. |

**DES and 3DES** |
Symmetric encryption algorithm
- **freeware**. |
Symmetric,
SFStreamCrypt |
Supports 64, 128, 192 bit key
lengths,
Works with 8 byte blocks.
The actual security is less then the number of bits, for example
for 64 bit key it is actually 56 bits.
DES and 3DES are exposed as a single algorithm by the library
and the key length determines what processing is to be done - 64
bit keys use DES while the others 3DES processing. If the
security is important for the application you should use at
least 128 bit keys with DES. Good choice mostly for backward
compatibility and for applications with moderate security
requirements which put more emphasis on the speed of the
processing. |

**AES** |
Symmetric encryption algorithm
- **freeware**. |
Symmetric,
SFStreamCrypt |
Supports 128, 192, 256 bit keys
Works with 16 byte blocks.
Widely used today - one of the preferred algorithms these
days. |

**RSA** |
Asymmetric (public key)
encryption algorithm - **freeware**. |
RSACrypt |
The most popular asymmetric
algorithm today. It offers a good security unless incorrectly
applied. Can serve purposes other than encryption - such as
signature verification, software and content licensing and so
on. |

**Big numbers arithmetic** |
Operations with very long
positive integers - **freeware**. |
Number |
Having this RSA implementation,
for example, is a matter of a few lines. While RSA is
implemented as ready-to-use object you can also implement it
yourself in a couple of lines using the big numbers. The object
can be used for implementation of other similar algorithms and
other purposes where operations with numbers with unlimited
length may be required. |