mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 06:22:25 +00:00
md5 sum calculation example.
This commit is contained in:
parent
dfaf2d3622
commit
75c155f8ec
2 changed files with 51 additions and 0 deletions
1
src/test/md5/hello.txt
Normal file
1
src/test/md5/hello.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Hello World!
|
||||||
50
src/test/md5/md5test.Mod
Normal file
50
src/test/md5/md5test.Mod
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
MODULE md5test;
|
||||||
|
IMPORT MD5 := ethMD5, Out, Files, Strings;
|
||||||
|
PROCEDURE dump(VAR arr: ARRAY OF CHAR);
|
||||||
|
VAR
|
||||||
|
i: INTEGER;
|
||||||
|
ch: CHAR;
|
||||||
|
BEGIN
|
||||||
|
i := 0;
|
||||||
|
REPEAT
|
||||||
|
Out.String("arr["); Out.Int(i, 0); Out.String("]="); Out.Int(ORD(arr[i]), 0);Out.Ln;
|
||||||
|
INC(i)
|
||||||
|
UNTIL i = Strings.Length(arr)+2
|
||||||
|
END dump;
|
||||||
|
|
||||||
|
PROCEDURE main;
|
||||||
|
VAR
|
||||||
|
context: MD5.Context;
|
||||||
|
digest: MD5.Digest;
|
||||||
|
hexDigest: ARRAY 33 OF CHAR;
|
||||||
|
F: Files.File;
|
||||||
|
R: Files.Rider;
|
||||||
|
input: ARRAY 512 OF CHAR;
|
||||||
|
ch: CHAR;
|
||||||
|
i: INTEGER;
|
||||||
|
BEGIN
|
||||||
|
F := Files.Old("hello.txt");
|
||||||
|
IF F # NIL THEN
|
||||||
|
Files.Set(R, F, 0);
|
||||||
|
i := 0;
|
||||||
|
REPEAT
|
||||||
|
Files.Read(R, ch);
|
||||||
|
input[i] := ch;
|
||||||
|
INC(i)
|
||||||
|
UNTIL R.eof;
|
||||||
|
dump(input);
|
||||||
|
END;
|
||||||
|
|
||||||
|
context := MD5.New(); (* Initialize MD5 context *)
|
||||||
|
|
||||||
|
MD5.WriteBytes(context, input, Strings.Length(input)); (* Process input string *)
|
||||||
|
MD5.Close(context, digest); (* Finalize and get digest *)
|
||||||
|
|
||||||
|
MD5.ToString(digest, hexDigest); (* Convert digest to hex string *)
|
||||||
|
Out.String("MD5 Hash: "); Out.String(hexDigest); Out.Ln;
|
||||||
|
END main;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
main;
|
||||||
|
END md5test.
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue