initial commit
This commit is contained in:
7
README.md
Normal file
7
README.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
## Encrypt text!
|
||||||
|
This repo uses php to encrypt and decrypt text. Encrypted text is
|
||||||
|
downloaded into a text file, which stores all relevent information in
|
||||||
|
XML.
|
||||||
|
To decrypt, upload the file in decrypt.php and type in the encryption
|
||||||
|
key. The contents of the txt file are obtained and used along with the
|
||||||
|
key to decrypt the original text.
|
||||||
18
decrypt.php
Normal file
18
decrypt.php
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Decrypt file</title>
|
||||||
|
<meta name=viewport content=width=device-width,initial-scale=1.0>
|
||||||
|
<link rel=stylesheet href=style.css type=text/css>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form class=center method=POST action=decryptFunc.php enctype="multipart/form-data">
|
||||||
|
<input type=file name=encDoc><br>
|
||||||
|
<input id=key type=text name=key placeholder='Decryption key'><br>
|
||||||
|
<button type=submit name=submit value=submit id=submitWriting>SUBMIT</button>
|
||||||
|
</form>
|
||||||
|
<br>
|
||||||
|
<p class=center><a href=/cs/encrypt.php>Encrypt a file</a></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
14
decryptFunc.php
Normal file
14
decryptFunc.php
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
require "enc.php";
|
||||||
|
$words = file_get_contents($_FILES["encDoc"]["tmp_name"]);
|
||||||
|
$data = simplexml_load_string($words) or die("Couldn't make object");
|
||||||
|
|
||||||
|
//Get the XML info in variables (hex2bin the iv and tag)
|
||||||
|
$key = $_POST["key"];
|
||||||
|
$iv = hex2bin($data->iv);
|
||||||
|
$tag = hex2bin($data->tag);
|
||||||
|
$ciphertext = $data->content;
|
||||||
|
|
||||||
|
echo "Your decrypted content:<br>";
|
||||||
|
echo decrypt($ciphertext, $key, $iv, $tag);;
|
||||||
|
?>
|
||||||
17
enc.php
Normal file
17
enc.php
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
function encrypt($plaintext, $key){
|
||||||
|
$cipher = "aes-128-gcm";
|
||||||
|
if (in_array($cipher, openssl_get_cipher_methods())){
|
||||||
|
$ivlen = openssl_cipher_iv_length($cipher);
|
||||||
|
$iv = openssl_random_pseudo_bytes($ivlen);
|
||||||
|
$res = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
|
||||||
|
return array($res, $iv, $tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function decrypt($ciphertext, $key, $iv, $tag){
|
||||||
|
$cipher = "aes-128-gcm";
|
||||||
|
if (in_array($cipher, openssl_get_cipher_methods())){
|
||||||
|
return openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
27
encrypt.php
Normal file
27
encrypt.php
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Encrytion and stuff</title>
|
||||||
|
<meta name=viewport content=width=device-width,initial-scale=1.0>
|
||||||
|
<link rel=stylesheet href=style.css type=text/css>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
function wordCount(thing) {
|
||||||
|
regex = /(\S\s)|(([A-Z]|[a-z])(\.|\!|\?|\z))/;
|
||||||
|
numOfParenthesis = 5; //how many par. sets are in the regex
|
||||||
|
words = (thing.value.split(regex).length-1)/numOfParenthesis;
|
||||||
|
document.getElementById("counter").innerHTML = words;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<form action=submit.php method=POST>
|
||||||
|
<h2 id=counter>0</h2>
|
||||||
|
<textarea onkeyup=wordCount(this) placeholder='Write your words here...' name=words></textarea>
|
||||||
|
<input id=key type=text name=key placeholder='Decryption key' required>
|
||||||
|
<button type=submit name=submit value=submit id=submitWriting>SUBMIT</button>
|
||||||
|
</form>
|
||||||
|
<br>
|
||||||
|
<p class=center><a href=/cs/decrypt.php>Decrypt a file</a></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
14
index.php
Normal file
14
index.php
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Encrytion and stuff</title>
|
||||||
|
<meta name=viewport content=width=device-width,initial-scale=1.0>
|
||||||
|
<link rel=stylesheet href=style.css type=text/css>
|
||||||
|
</head>
|
||||||
|
<body class=center>
|
||||||
|
<h2><a href=encrypt.php>ENCRYPT</a></h2>
|
||||||
|
<p>or</p>
|
||||||
|
<h2><a href=decrypt.php>DECRYPT</a></h2>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
56
style.css
Normal file
56
style.css
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
body{
|
||||||
|
background-color: #151515;
|
||||||
|
color: #ccc;
|
||||||
|
font-size: 1.4em;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
a{
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
.center{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#counter{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
textarea{
|
||||||
|
width: 70%;
|
||||||
|
background-color: #252525;
|
||||||
|
border: none;
|
||||||
|
padding: 1em;
|
||||||
|
border-radius: 0.4em;
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
font-size: 0.9em;
|
||||||
|
color: inherit;
|
||||||
|
min-height: 50vh;
|
||||||
|
}
|
||||||
|
#key{
|
||||||
|
font-family: inherit;
|
||||||
|
display: block;
|
||||||
|
width: 25%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
background-color: #333;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.4em;
|
||||||
|
padding: 0.5em;
|
||||||
|
margin-top: 1em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
button{
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-top: 1em;
|
||||||
|
background-color: #333;
|
||||||
|
color: inherit;
|
||||||
|
border: none;
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
border-radius: 0.4em;
|
||||||
|
}
|
||||||
|
form>*{
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
9
submit.php
Normal file
9
submit.php
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
require "enc.php";
|
||||||
|
$enc = encrypt($_POST["words"], $_POST["key"]);
|
||||||
|
$content = "<encrypted>\n"." <iv>".bin2hex($enc[1])."</iv>\n"." <tag>".bin2hex($enc[2])."</tag>\n"." <content>".$enc[0]."</content>\n"."</encrypted>";
|
||||||
|
|
||||||
|
header('Content-type: text/plain');
|
||||||
|
header('Content-Disposition: attachment; filename="encrypted.txt"');
|
||||||
|
echo $content;
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user