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
7 years ago
by
raliis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
4c8b0970
master
Show 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
"
);
}
This diff is collapsed.
Click to expand it.
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