Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
raliis
/
IAX0584
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
3c4efbdb
authored
Jan 31, 2018
by
raliis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
4c8b0970
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
161 additions
and
0 deletions
week1/krypto.c
week1/krypto.c
0 → 100644
View file @
3c4efbdb
/**
* File: krypto2.c
* Author: Rainer Liis
* Created: 29.01.2018
* Last edit: 31.01.2018
*
* Descrption: Encryption and decryption of text using caesar cipher.
* Input from text file and output to a text file.
* Encryption counts up, decryption counts down.
*/
#include <stdio.h>
void
encrypt
();
void
decrypt
();
int
main
(
void
)
{
char
valik
;
printf
(
"Do you wish to encrypt or decrypt?
\n
"
);
// user enters choice
do
{
printf
(
"Please enter a valid option(e/d):"
);
scanf
(
"%c"
,
&
valik
);
}
while
(
valik
!=
'e'
&&
valik
!=
'd'
);
//depending on the choice, a function is started
if
(
valik
==
'e'
)
{
encrypt
();
}
else
if
(
valik
==
'd'
)
{
decrypt
();
}
else
{
printf
(
"option does not exist"
);
// if input is not one of
}
// the choices
return
0
;
}
void
encrypt
()
{
char
ni
[
80
]
=
"sisend.txt"
,
no
[
80
]
=
"tul.txt"
;
char
c
;
int
key
;
int
caesar
;
FILE
*
fi
,
*
fo
;
fi
=
fopen
(
ni
,
"r"
);
fo
=
fopen
(
no
,
"w"
);
printf
(
"Enter the encryption key to encrypt: "
);
scanf
(
"%d"
,
&
key
);
key
=
key
%
26
;
// in case the key is too large
do
{
c
=
fgetc
(
fi
);
if
(
feof
(
fi
))
// loop breaks when fgetc reaches end of file
{
break
;
}
if
(
c
>=
65
&&
c
<=
90
)
// if char is uppercase
{
if
((
c
+
key
)
>
90
)
{
caesar
=
c
-
(
26
-
key
);
}
else
{
caesar
=
(
int
)
c
+
key
;
}
}
else
if
(
c
>=
97
&&
c
<=
122
)
// if char is lowercase
{
if
((
c
+
key
)
>
122
)
{
caesar
=
c
-
(
26
-
key
);
}
else
{
caesar
=
(
int
)
c
+
key
;
}
}
printf
(
"%c"
,
caesar
);
fprintf
(
fo
,
"%c"
,
caesar
);
}
while
(
1
);
printf
(
"
\n
"
);
}
void
decrypt
()
{
char
ni
[
80
]
=
"sisend.txt"
,
no
[
80
]
=
"tul.txt"
;
char
c
;
int
key
;
int
caesar
;
FILE
*
fi
,
*
fo
;
fi
=
fopen
(
ni
,
"r"
);
fo
=
fopen
(
no
,
"w"
);
printf
(
"Enter the encryption key to decrypt: "
);
scanf
(
"%d"
,
&
key
);
key
=
key
%
26
;
// in case the key is too large
do
{
c
=
fgetc
(
fi
);
if
(
feof
(
fi
))
// loop breaks when fgetc reaches end of file
{
break
;
}
if
(
c
>=
65
&&
c
<=
90
)
// if char is uppercase
{
if
((
c
-
key
)
<
65
)
{
caesar
=
c
+
(
26
-
key
);
}
else
{
caesar
=
(
int
)
c
-
key
;
}
}
else
if
(
c
>=
97
&&
c
<=
122
)
// if char is lowercase
{
if
((
c
-
key
)
<
97
)
{
caesar
=
c
+
(
26
-
key
);
}
else
{
caesar
=
(
int
)
c
-
key
;
}
}
printf
(
"%c"
,
caesar
);
fprintf
(
fo
,
"%c"
,
caesar
);
}
while
(
1
);
printf
(
"
\n
"
);
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment