Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- INCLUDE irvine32.inc
- BUFMAX = 128 ; maximum buffer size
- .data
- key BYTE BUFMAX+1 DUP(0)
- keySize DWORD ?
- mes BYTE BUFMAX+1 DUP(0)
- mesSize DWORD ?
- msgWel BYTE "Welcome! This program encrypts and decrypts a message using any key and message!", 0DH, 0AH, 0
- msgEn BYTE "Please enter the Encryption Key: ", 0
- msgMe BYTE "Please enter the Message you want Encrypted: ", 0
- msgFin BYTE "The Encrypted Message is: ", 0
- msgUn BYTE "The Decrypted Message is: ", 0
- msgAny BYTE "Press any key to continue...", 0DH, 0AH, 0
- .code
- main PROC
- call Input
- call Encryption
- mov EDX, offset msgFin
- call WriteString
- mov EDX, offset mes
- call WriteString
- call Encryption
- mov EDX, offset msgUn
- call WriteString
- mov EDX, offset mes
- call WriteString
- call Crlf
- mov EDX, offset msgAny
- call WriteString
- call ReadInt
- exit
- main ENDP
- Input PROC
- pushad ; save 32-bit registers
- mov EDX, offset msgWel ; display a prompt
- call WriteString
- mov EDX, offset msgEn ; display a prompt
- call WriteString
- mov ECX, BUFMAX ; maximum character count
- mov EDX, offset key ; point to the key
- call ReadString ; input the string
- mov keySize, EAX ; save the length for key
- mov EDX, offset msgMe ; display a prompt
- call WriteString
- mov ECX, BUFMAX ; maximum character count
- mov EDX, offset mes ; point to the key
- call ReadString ; input the string
- mov mesSize, EAX ; save the length for message
- call Crlf
- popad
- ret
- Input ENDP
- Encryption PROC
- pushad
- mov ECX, mesSize ; loop counter
- mov ESI, 0
- mov EAX, 0 ; index 0 in message
- L1:
- mov AL, key[EAX]
- xor mes[ESI], AL ; translate a byte
- inc ESI
- inc EAX
- cmp keySize, EAX
- jb below
- loop L1
- below:
- mov EAX, 0
- loop L1
- call crlf
- popad
- ret
- Encryption ENDP
- END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement