MD5: Difference between revisions

2,221 bytes added ,  2 years ago
Line 635:
CLOSE Tmp-MD5.
CALL "CBL_DELETE_FILE" USING '/tmp/MD5'.
</lang>
<lang COBOL>
IDENTIFICATION DIVISION.
PROGRAM-ID. MD5-DEMO.
AUTHOR. Bill Gunshannon
INSTALLATION. Home.
DATE-WRITTEN. 16 December 2021.
************************************************************
** Program Abstract:
** Use the md5sum utility and pass the HASH back using
** a temp file. Not elegant, but it works.
** Same program but made MD5 a User Defined Function
** instead of a procedure.
************************************************************
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
 
REPOSITORY.
FUNCTION MD5.
 
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Eof PIC X VALUE 'F'.
01 Str1.
05 Pre-cmd PIC X(8)
VALUE 'echo -n '.
05 Str1-complete.
10 Str1-Part1 PIC X(26)
VALUE 'The quick brown fox jumps'.
10 Str1-Part2 PIC X(19)
VALUE ' over the lazy dog'.
05 Post-cmd PIC X(20)
VALUE ' | md5sum > /tmp/MD5'.
01 Str1-MD5 PIC X(32).
PROCEDURE DIVISION.
Main-Program.
DISPLAY Str1-complete.
* PERFORM Get-MD5.
MOVE FUNCTION MD5(Str1) TO Str1-MD5.
DISPLAY Str1-MD5.
STOP RUN.
 
END PROGRAM MD5-DEMO.
IDENTIFICATION DIVISION.
FUNCTION-ID. MD5.
 
ENVIRONMENT DIVISION.
 
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT Tmp-MD5 ASSIGN TO "/tmp/MD5"
ORGANIZATION IS LINE SEQUENTIAL.
 
 
DATA DIVISION.
 
FILE SECTION.
 
FD Tmp-MD5
DATA RECORD IS MD5-Rec.
01 MD5-Rec PIC X(32).
 
 
 
LINKAGE SECTION.
01 Str1 PIC X(128).
01 Str1-MD5 PIC X(32).
 
PROCEDURE DIVISION USING Str1 RETURNING Str1-MD5.
CALL "SYSTEM" USING FUNCTION TRIM(Str1).
OPEN INPUT Tmp-MD5.
READ Tmp-MD5 INTO Str1-MD5.
CLOSE Tmp-MD5.
CALL "CBL_DELETE_FILE" USING '/tmp/MD5'.
GO-BACK.
 
END FUNCTION MD5.
</lang>
{{Out}}