MD5 Message Digest Unit
| Release: | 0.2 beta | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date: | 21 July 2010 | ||||||||||||||||||||||||
|
Delphi Compatibility:
|
|
- Overview
- Download
- Install Info
- Change Log
- License
About the Unit
Introduction
This unit contains an implementation of the MD5 message digest algorithm. It is implemented as a Delphi class named TPJMD5.
The code was developed from scratch based on the algorithm presented in RFC 1321. Portions of the code are translated from the reference C code supplied in the RFC. Note though that the code is not a literal translation into Pascal from the reference C code.
The algorithm and reference code are copyright © 1991-2, RSA Data Security, Inc. Created 1991. All rights reserved.
The unit is maintained as part of the Delphi Dabbler Code Library project on GoogleCode.
Documentation
The component is documented in the MD5 Message Digest Unit Wiki.
Testing
DUnit tests for the unit are supplied in the download. The tests include those specified in RFC 1321.
Bugs & Feature Requests
Please report any bugs you find using the Issue Tracker Please state that you are reporting a bug in the MD5 Message Digest
Unit since the issue tracker is shared between different library
components and classes. Do this by changing the
Project-unspecified label to Project-md5.
You can request new features using the same Issue Tracker that is used to report bugs. When creating a new feature request make
sure you change the Template from Defect Report from
User to Feature Request and change the
Project-unspecified label to Project-md5.
Rationale
So why write this code?
Well, I've been searching for an up-to-date implementation of the MD5 algorithm that meets these criteria:
-
No dependency on
.objfiles or DLLs. I want pure Pascal code. - Open source with a license compatible with the Mozilla Public License because I want to use it in an MPLd application of mine, so GPL-only code is ruled out.
- Compiles and works with the Unicode Delphi Compilers.
- Object oriented.
- Easy to get an MD5 digest from all sorts of data without messing about converting it and playing around with contexts etc.
The implementation I've been using up until now meets only the first 2 criteria. And it is no longer being updated. And it took me quite some time to persuade it to work in the Unicode world of Delphi 2010.
It somehow seemed easier to start again. After a couple of false starts, this is the result.



