Skip to content

Commit cd78c5f

Browse files
save file
1 parent e50f991 commit cd78c5f

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
2+
3+
4+
// key >>> message
5+
6+
7+
var tiny = {};
8+
9+
10+
tiny.encrypt = (message,key)=>{
11+
12+
message = [...message];
13+
var n = key.length;
14+
for(var i=0;i<n;i++){
15+
16+
var k = key[i];
17+
var mi = i%message.length;
18+
var c = message[mi];
19+
var byte = tiny.code(c)^tiny.code(k);
20+
var e = tiny.char(byte);
21+
message[mi] = e;
22+
console.log(i,k,mi,c,byte,e);
23+
//[...message].reduce((a,c,i)=>a+tiny.xor(c,key,i),'')
24+
25+
}//for
26+
27+
message = message.join('');
28+
var b64 = btoa(message);
29+
return b64;
30+
31+
}//encrypt
32+
33+
34+
tiny.decrypt = (encrypted,key)=>{
35+
36+
encrypted = atob(encrypted);
37+
encrypted = [...encrypted];
38+
var n = key.length;
39+
for(var i=0;i<n;i++){
40+
41+
var ei = i%encrypted.length;
42+
var e = encrypted[ei];
43+
var k = key[i];
44+
var byte = tiny.code(e)^tiny.code(k);
45+
var c = tiny.char(byte);
46+
encrypted[ei] = c;
47+
48+
//[...atob(encrypted)].reduce((a,e,i)=>a+tiny.xor(e,key,i),'')
49+
50+
}//for
51+
52+
encrypted = encrypted.join('');
53+
var message = encrypted;
54+
return message;
55+
56+
}//decrypt
57+
58+
59+
tiny.xor = (c,key,i)=>tiny.char(tiny.code(c)^tiny.code(key[i%key.length]));
60+
tiny.code = v=>v.charCodeAt(0);
61+
tiny.char = v=>String.fromCharCode(v);
62+
63+
64+
var key = '1234567890xyz';
65+
var encrypted = tiny.encrypt('hello',key)
66+
console.log(encrypted);
67+
68+
var decrypted = tiny.decrypt(encrypted,key);
69+
console.log(decrypted);
70+
71+
72+
73+
74+

0 commit comments

Comments
 (0)