-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcribdrag.js
34 lines (29 loc) · 1.08 KB
/
cribdrag.js
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
function updateResults() {
$("#frequent_sequences").empty();
var ciphertext = atob($("#ciphertext").val());
var cribtext = $("#crib").val();
var crib_len = cribtext.length;
if(crib_len == 0) {
// Nothing inputed for crib.
return;
}
for(var i = 0; i < ciphertext.length - crib_len; i++) {
var curr_thing = "";
for(var j = 0; j < crib_len; j++) {
var single_xor_result = cribtext.charCodeAt(j) ^ ciphertext.charCodeAt(i + j);
curr_thing += String.fromCharCode(single_xor_result);
}
if(printable(curr_thing)) {
if(/^[A-Za-z ]+$/.test(curr_thing)) {
$("#frequent_sequences").append(
'<strong><p data-starti="'+ i +'" data-endi="' + (i + j) + '">' + curr_thing + "</p></strong>");
} else {
$("#frequent_sequences").append(
'<div><p data-starti="'+ i +'" data-endi="' + (i + j) + '">' + curr_thing + "</p></div>");
}
}
}
}
$(function () {
$("#do_it").click(updateResults);
});