Skip to content

Commit b4e76b4

Browse files
committed
initiate the double transposition
1 parent 1ae4b18 commit b4e76b4

File tree

3 files changed

+146
-11
lines changed

3 files changed

+146
-11
lines changed

.idea/workspace.xml

Lines changed: 31 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doubleTransposition.js

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
let message = 'DEPARTMENTOFCOMPUTERSCIENCEANDENGINEERING';
2+
let sector = 10;
3+
4+
let transposition = (myString, column, cb) => {
5+
6+
createMatrix(myString, column, (err, matrix, row) => {
7+
let transposedMessage = '';
8+
let decryptMessage = '';
9+
10+
if (err) {
11+
12+
} else {
13+
for (let j=0; j<column; j++) {
14+
for (let i=0; i<row; i++) {
15+
if (matrix[i][j] == null) {
16+
decryptMessage += '$';
17+
} else {
18+
transposedMessage += matrix[i][j];
19+
decryptMessage += matrix[i][j];
20+
}
21+
}
22+
}
23+
return cb(null, transposedMessage, decryptMessage, row);
24+
}
25+
});
26+
};
27+
28+
let createMatrix = (myString, column, cb) => {
29+
myString = myString.split('');
30+
let row,
31+
length = myString.length,
32+
tempRowF = length/column,
33+
tempRowR = parseInt(length/column),
34+
matrix = new Array();
35+
36+
if (tempRowR == tempRowF) {
37+
row = tempRowR;
38+
} else {
39+
row = tempRowR + 1;
40+
}
41+
42+
let index = 0;
43+
44+
for (let i=0; i<row; i++) {
45+
matrix[i] = new Array();
46+
}
47+
48+
for (let i=0; i<row; i++) {
49+
for (let j=0; j<column; j++) {
50+
if (myString[index] == ' ') {
51+
matrix[i][j] = '-';
52+
} else if (index >= length) {
53+
matrix[i][j] = null;
54+
} else {
55+
matrix[i][j] = myString[index];
56+
}
57+
index ++;
58+
}
59+
}
60+
61+
return cb(null, matrix, row);
62+
};
63+
64+
let decryptMessage = (encryptedMessage, column, cb) => {
65+
encryptedMessage = encryptedMessage.split('');
66+
let decryptMessage = '';
67+
let reservedMessage = '';
68+
let length = encryptedMessage.length - 1;
69+
let index = 0;
70+
for (let i=0; i<length; i++) {
71+
if (encryptedMessage[index] == '$') {
72+
reservedMessage += encryptedMessage[index];
73+
} else {
74+
decryptMessage += encryptedMessage[index];
75+
reservedMessage += encryptedMessage[index];
76+
}
77+
78+
index += column;
79+
80+
if (index >= length) {
81+
index = index - length;
82+
}
83+
}
84+
cb(null, decryptMessage, reservedMessage);
85+
};
86+
87+
transposition(message, sector, (err, encryptMessage, reservedMessage, row) => {
88+
console.log('MESSAGE: ' + message + '\n');
89+
90+
if (err) {
91+
92+
} else {
93+
console.log('AFTER ENCRYPTION');
94+
console.log(' Encrypted message: ' + encryptMessage);
95+
console.log(' Reserved message:' + reservedMessage);
96+
decryptMessage(reservedMessage, row, (err, decryptedMessage, reservedMessage) => {
97+
if (err) {
98+
99+
} else {
100+
console.log('AFTER DECRYPTION');
101+
console.log(' Decryped message: ' + decryptedMessage);
102+
console.log(' Reserved message: ' + reservedMessage);
103+
}
104+
});
105+
}
106+
});
107+

transposition.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
let message = 'DEPARTMENTOFCOMPUTERSCIENCEANDENGINEERING';
2+
let sector = 10;
3+
14
let transposition = (myString, column, cb) => {
25

36
createMatrix(myString, column, (err, matrix, row) => {
@@ -17,7 +20,7 @@ let transposition = (myString, column, cb) => {
1720
}
1821
}
1922
}
20-
return cb(null, transposedMessage, decryptMessage);
23+
return cb(null, transposedMessage, decryptMessage, row);
2124
}
2225
});
2326
};
@@ -81,14 +84,16 @@ let decryptMessage = (encryptedMessage, column, cb) => {
8184
cb(null, decryptMessage, reservedMessage);
8285
};
8386

84-
transposition('DEPARTMENTOFCOMPUTERSCIENCEANDENGINEERING', 10, (err, encryptMessage, reservedMessage) => {
87+
transposition(message, sector, (err, encryptMessage, reservedMessage, row) => {
88+
console.log('MESSAGE: ' + message + '\n');
89+
8590
if (err) {
8691

8792
} else {
8893
console.log('AFTER ENCRYPTION');
8994
console.log(' Encrypted message: ' + encryptMessage);
9095
console.log(' Reserved message:' + reservedMessage);
91-
decryptMessage(reservedMessage, 10, (err, decryptedMessage, reservedMessage) => {
96+
decryptMessage(reservedMessage, row, (err, decryptedMessage, reservedMessage) => {
9297
if (err) {
9398

9499
} else {

0 commit comments

Comments
 (0)