Repository navigation
Expand file tree
/
Copy pathtest_this.html
More file actions
128 lines (85 loc) · 5.3 KB
/
Copy pathtest_this.html
File metadata and controls
128 lines (85 loc) · 5.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<html>
<body>
<h1>Lab 9 Demo 1</h1>
<h3>Step 1: message</h3>
<input name="message" id="message" type="text" >
<br/><br/>
<button type="button" onclick="hash()">Hash</button>
<br/><br/>
<p name="hash_value" id="hash_value"></p>
<h3>Step 2: timestamp</h3>
<h3>Current Time: The Current Unix Timestamp since Jan 01 1970. (UTC)</h3>
<button type="button" onclick="getTime()">Get current time in second</button>
<br/><br/>
<p name="currentTime" id="currentTime"></p>
<h3>Step 3: RSA encryption</h3>
<h3>Encrypted (the message + "&" the timestamp) together</h3>
<button type="button" onclick="encryption()">encrypt</button>
<br/><br/>
<p name="encrypted" id="encrypted"></p>
<h3>Step 4: RSA decryption</h3>
<h3>Decrypt the ciphertext</h3>
<button type="button" onclick="decryption()">decrypt</button>
<br/><br/>
<p name="decrypted" id="decrypted"></p>
<h3>Step 5: Split decrypted value based on "&"</h3>
<h3>Decrypt the ciphertext</h3>
<button type="button" onclick="split_string()">split</button>
<br/><br/>
<p name="split1" id="split1"></p>
<p name="split2" id="split2"></p>
<script src="sha256.js"></script>
<script src="rsa.js"></script>
<script type="text/javascript">
function hash() {
var input = document.getElementById('message').value;
var hash = SHA256.hash(input);
document.getElementById('hash_value').innerHTML = hash;
document.getElementById('hash_value').value = hash;
}
function getTime() {
//get current time in Second since Jan 01 1970. (UTC)
var currentTime = Math.floor(new Date().getTime() / 1000);
document.getElementById('currentTime').innerHTML = currentTime;
document.getElementById('currentTime').value = currentTime;
}
function encryption(){
var hashed_value = document.getElementById('hash_value').value;
var timestamp = document.getElementById('currentTime').value;
var ciphertext = RSA_encryption(hashed_value+"&"+timestamp, pubilc_key);
document.getElementById('encrypted').innerHTML = ciphertext;
document.getElementById('encrypted').value = ciphertext;
}
function decryption(){
var encrypted = document.getElementById('encrypted').value;
var decrypted = RSA_decryption(encrypted, private_key);
document.getElementById('decrypted').innerHTML = decrypted;
document.getElementById('decrypted').value = decrypted;
}
function split_string(){
var string = document.getElementById('decrypted').value;
var split = string.split("&");
document.getElementById('split1').innerHTML = split[0];
document.getElementById('split1').value = split[0];
document.getElementById('split2').innerHTML = split[1];
document.getElementById('split2').value = split[1];
}
</script>
<script type="text/javascript">
var pubilc_key = "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzdxaei6bt/xIAhYsdFdW62CGTpRX+GXoZkzqvbf5oOxw4wKENjFX7LsqZXxdFfoRxEwH90zZHLHgsNFzXe3JqiRabIDcNZmKS2F0A7+Mwrx6K2fZ5b7E2fSLFbC7FsvL22mN0KNAp35tdADpl4lKqNFuF7NT22ZBp/X3ncod8cDvMb9tl0hiQ1hJv0H8My/31w+F+Cdat/9Ja5d1ztOOYIx1mZ2FD2m2M33/BgGY/BusUKqSk9W91Eh99+tHS5oTvE8CI8g7pvhQteqmVgBbJOa73eQhZfOQJ0aWQ5m2i0NUPcmwvGDzURXTKW+72UKDz671bE7YAch2H+U7UQeawwIDAQAB-----END PUBLIC KEY-----";
var private_key = "-----BEGIN PRIVATE KEY-----MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDN3Fp6Lpu3/EgCFix0V1brYIZOlFf4ZehmTOq9t/mg7HDjAoQ2MVfsuyplfF0V+hHETAf3TNkcseCw0XNd7cmqJFpsgNw1mYpLYXQDv4zCvHorZ9nlvsTZ9IsVsLsWy8vbaY3Qo0Cnfm10AOmXiUqo0W4Xs1PbZkGn9fedyh3xwO8xv22XSGJDWEm/QfwzL/fXD4X4J1q3/0lrl3XO045gjHWZnYUPabYzff8GAZj8G6xQqpKT1b3USH3360dLmhO8TwIjyDum+FC16qZWAFsk5rvd5CFl85AnRpZDmbaLQ1Q9ybC8YPNRFdMpb7vZQoPPrvVsTtgByHYf5TtRB5rDAgMBAAECggEAUDPieCnCd1rtvwpehXElpwxzJxg6ccdaVMjwx7tuoRidHoRzeB2fUNbWvLVIGvDTjTPGAr5I9BoFHT5tARJMeGIzbISDxsosDBRKu88cCx6dRl3ukcjSLsxMh8XUDhyWLsSgAMIpxVfHUuOsHmLZ2I3Ho6o1KIxdVg/JSgtdwTqjz3w8jmGQ/NXgc7Ym/ys1fLG9L2nYdMzK/mRJf/BnXiCNE6/SYlZYO716oC688UJBWS3BqB9jaJyNpigX//ynJvU6xw8FhHt4fRStUmCCYAYhCQu3XgbtmxKisDGhdBVASG+DM+vVTh+sSvxkNrjJjF+m2tSg578A8C8Ls0r3uQKBgQDpO9e178NR0HHmvWbZR9+uPugf4UT9+U2/dEfJBHAOp2GRsIvXkFwbPHuSHkc0iEPwz+U8gPC8jInSslKOUDtaGtUaVzzWrxxh7DggWx4pYs3I0Ki8C+CRTTdOY9GAFa9jhIyRmf6v9QoAH/loGNV2qYFbb+HweD0PnxlWha1txQKBgQDh9IBBltW7T96foUmHOn+x6xlF5MNDHxLBY6bngxKvMTZoi5C6wmmCmasF45LWbkvUiMAsovYN5z4cJnKXWmRmCS8NXUucmUgdvsmCbiB62BmZvHaOffmnIdhcAjBebT/Bn5qMvKCNy3fQFSfuEw1eRRO2IofB4o7z7m794vo25wKBgEPowrQcrZhCwwdWGn4laUGI23l80+PHFRYru0MSYbZCkiwjZXRMeiUMBUbUPhNTocSaI7rsKCweF3sbpOH/BmkD6wySXgp8Th1M9EKnhS6zsAtKhfbK1oY4H2RZuAQ9TCYD0BIM7pU5GcJTjQD8ShsU269N8lFcERtdTbldjtOpAoGAF4YkADAa6lhjXg0loY2Gk9hdFji913QZuMaOLtYnkNO3zWSSWc85ut4Svxc1R1vOSz89eqgwo7vqbHXYQken4jOckXCgGZqftnERe6HJgeCTsby8PxOAdVUBuHqF3J7VH2xlY7eTo4+GVsSNFq0nHCRm6/RmW9ohdeXh6k7CLAsCgYBZe3RLWuffKxg+lZmv9tJDOO813QPLFeixrBYhKjGDcwjVYcCugGNDmyStM0/++uWddgMKavNALjpamu8KolDNivrjL1qaFHX9Bpi108T+dDn2WpX+vUP6hjA/U2wtTvUbJle1SsbZxRrV9gf5PAJqTrQY4u28ezjR3PCV+R4kdw==-----END PRIVATE KEY-----";
function RSA_encryption(message, publicKey){
var encrypt = new JSEncrypt();
encrypt.setPublicKey(publicKey);
var encrypted = encrypt.encrypt(message);
return encrypted;
}
function RSA_decryption(ciphertext, privateKey){
var decrypt = new JSEncrypt();
decrypt.setPrivateKey(privateKey);
var decrypted = decrypt.decrypt(ciphertext);
return decrypted;
}
</script>
</body>
</html>