diff --git a/code/assets/js/deffiehelman.js b/code/assets/js/deffiehelman.js new file mode 100644 index 0000000000000000000000000000000000000000..f89eaa38070f2d370b638ea1996f5d459d129a2a --- /dev/null +++ b/code/assets/js/deffiehelman.js @@ -0,0 +1,41 @@ +const MAX_RAND = 2147483647; +const MIN_RAND = 0; + + +function generateNumber() { + + return Math.floor(Math.random() * (MAX_RAND - MIN_RAND)) + MIN_RAND; +} + +function computePublic(number1 power number2) { + + return Math.pow(number1,power) % number2; +} + +function sharedPrivate(number1 power number2) { + + return Math.pow(number1,power) % number2; +} + + +function deffiehelman() { + var xhttp = new XMLHttpRequest(); + + number1 = generateNumber(); + number2 = generateNumber(); + xhttp.open("GET", "deffiehelman.php?action=1&number1="+number1+"&number2="+number2, false); + xhttp.send(); + + sharedPublicServer = xhttp.responseText; + + randomPrivate = generateNumber(); + sharedPublicClient = computePublic(number1,number2); + + var xhttp = new XMLHttpRequest(); + xhttp.open("GET", "deffiehelman.php?action=2&sharedPublicClient"+sharedPublicClient, false); + xhttp.send(); + + sharedKey = sharedPrivate(sharedPublicServer,randomPrivate,number2); + + return sharedKey; +} diff --git a/code/deffiehelman.php b/code/deffiehelman.php new file mode 100644 index 0000000000000000000000000000000000000000..346f91383182a2c7ce1edad817a12fe309e5f136 --- /dev/null +++ b/code/deffiehelman.php @@ -0,0 +1,70 @@ +<?php + + define ("MAX_INT",2147483647); + include 'mainviewer.php'; + + + function generateNumber() { + return random_int(0,MAX_INT); + } + + function computePublic($number1, $power, $number2) { + + return pow($number1, $power) % $number2; + } + + function sharedPrivate($number1, $power, $number2) { + + return pow($number1, $power) % $number2; + } + + + function deffiehelman() { + var xhttp = new XMLHttpRequest(); + + number1 = generateNumber(); + number2 = generateNumber(); + xhttp.open("GET", "deffiehelman.php?action=1&number1="+number1+"&number2="+number2, false); + xhttp.send(); + + sharedPublicServer = xhttp.responseText; + + randomPrivate = generateNumber(); + sharedPublicClient = computePublic(number1,number2); + + var xhttp = new XMLHttpRequest(); + xhttp.open("GET", "deffiehelman.php?action=2&sharedPublicClient"+sharedPublicClient, false); + xhttp.send(); + + sharedKey = sharedPrivate(sharedPublicServer,randomPrivate,number2); + + return sharedKey; + } + + $action = $_GET['action']; + if ($action==1) { + $number1 = $_GET['number1']; + $number2 = $_GET['number2']; + $randomPrivate = generateNumber(); + + sharedPublicServer = computePublic($number1,$randomPrivate,$number2); + //masukin ke database + $con = phpsqlconnection(); + $sql = "INSERT INTO post (Post_Id, Creator_Id, Title, Date, Contents, Image) + VALUES (NULL".",".$creatorid.","."'".$Judul."'".","."'".$Tanggal."'".","."'".$Konten."'".","."'".$target_file."')"; + if (mysqli_multi_query($con, $sql)) { + // echo "Huba"; + header("Location: index.php"); + } else { + echo "Error: " . $sql . "<br>" . mysqli_error($con); + } + + + echo sharedPublicServer; + } + else if ($action==2) { + $number1 = $_GET['number1']; + sharedKey = sharedPrivate() + } + + ?> \ No newline at end of file diff --git a/code/sqldump/simpleblog.sql b/code/sqldump/simpleblog.sql index c2391bd4403c8df0499be80b4634a3d6b70f8b60..350c6ea28f3d2aaf3e54b3cef45a7e3f850850c1 100644 --- a/code/sqldump/simpleblog.sql +++ b/code/sqldump/simpleblog.sql @@ -3,8 +3,8 @@ -- http://www.phpmyadmin.net -- -- Host: 172.17.0.3:3306 --- Generation Time: Feb 24, 2016 at 01:37 PM --- Server version: 5.6.29-log +-- Generation Time: Feb 24, 2016 at 05:01 PM +-- Server version: 5.5.48-log -- PHP Version: 5.6.9-1+deb.sury.org~trusty+2 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; @@ -70,7 +70,7 @@ INSERT INTO `post` (`Post_Id`, `Creator_Id`, `Title`, `Date`, `Contents`, `Image (38, 3, 'Mamam', '2016-12-12 00:00:00', 'mamam; CREATE DATABASE Suppliers', NULL), (39, 18, 'Aing mamam', '2020-12-12 00:00:00', 'Aing juga mamam', NULL), (40, 18, 'Mamam', '2016-12-12 00:00:00', 'Mamam', NULL), -(41, 18, 'aidjnaijfni', '3242-12-12 00:00:00', 'aksjdnaisjfniajdsfn', NULL), +(41, 18, 'aidjnaijfni', '3242-12-12 00:00:00', 'aksjdnaisjfniajdsfn', 'uploads/Screenshot from 2016-02-17 11:37:55.png'), (42, 18, 'aidjnaijfni', '3242-12-12 00:00:00', 'aksjdnaisjfniajdsfn', NULL), (43, 18, 'aidjnaijfni', '3242-12-12 00:00:00', 'aksjdnaisjfniajdsfn', NULL), (44, 18, 'aidjnaijfni', '3242-12-12 00:00:00', 'aksjdnaisjfniajdsfn', NULL), @@ -89,27 +89,28 @@ CREATE TABLE `user` ( `Nama` varchar(25) NOT NULL, `Email` varchar(25) NOT NULL, `Password` varchar(25) NOT NULL, - `Token` varchar(256) NOT NULL, - `Identifier` varchar(256) NOT NULL + `base2` int(11) NOT NULL, + `random` int(11) NOT NULL, + `shared_key` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `user` -- -INSERT INTO `user` (`User_Id`, `Nama`, `Email`, `Password`, `Token`, `Identifier`) VALUES -(3, 'Daniar Heri Kurniawan', 'daniar.h.k@gmail.com', 'da', '', ''), -(8, 'Tegar Aji Pangestu', 'tegar@gmail.com', 'te', '', ''), -(9, 'Fandi Azam Wiranata', 'fandi@gmail.com', 'fa', '', ''), -(10, 'Kurnia Mega', 'kurnia@gmail.com', 'ku', '', ''), -(11, 'Subagyo', 'su@gmail.com', 'su', '', ''), -(12, 'aa', 'aa@gmail.com', 'aa', '', ''), -(13, 'bb', 'bb@gmail.com', 'bb', '', ''), -(14, 'rr', 'rr@gmail.com', 'rr', '', ''), -(15, 'ww', 'ww@gmail.com', 'ww', '', ''), -(16, 'tt', 'tt@gmail.com', 'tt', '', ''), -(17, 'qq', 'qq@gmail.com', 'qq', '', ''), -(18, 'tegar', 'mamam@gmail.com', 'mamam', '', ''); +INSERT INTO `user` (`User_Id`, `Nama`, `Email`, `Password`, `base2`, `random`, `shared_key`) VALUES +(3, 'Daniar Heri Kurniawan', 'daniar.h.k@gmail.com', 'da', 0, 0, 0), +(8, 'Tegar Aji Pangestu', 'tegar@gmail.com', 'te', 0, 0, 0), +(9, 'Fandi Azam Wiranata', 'fandi@gmail.com', 'fa', 0, 0, 0), +(10, 'Kurnia Mega', 'kurnia@gmail.com', 'ku', 0, 0, 0), +(11, 'Subagyo', 'su@gmail.com', 'su', 0, 0, 0), +(12, 'aa', 'aa@gmail.com', 'aa', 0, 0, 0), +(13, 'bb', 'bb@gmail.com', 'bb', 0, 0, 0), +(14, 'rr', 'rr@gmail.com', 'rr', 0, 0, 0), +(15, 'ww', 'ww@gmail.com', 'ww', 0, 0, 0), +(16, 'tt', 'tt@gmail.com', 'tt', 0, 0, 0), +(17, 'qq', 'qq@gmail.com', 'qq', 0, 0, 0), +(18, 'tegar', 'mamam@gmail.com', 'mamam', 0, 0, 0); -- -- Indexes for dumped tables