From f0f65a5b6abccd88abee6376bec76b0807d54e5a Mon Sep 17 00:00:00 2001 From: Jaroslav Date: Tue, 14 May 2019 16:37:40 +0300 Subject: [PATCH 1/8] Encryption-Decryption A program to encrypt and decrypt texts and messages through command line, file or standart input using simple algorithms --- Cipher.class | Bin 0 -> 178 bytes Crypto.class | Bin 0 -> 893 bytes DataProcess.class | Bin 0 -> 3170 bytes Main.class | Bin 0 -> 1131 bytes ShiftAlg.class | Bin 0 -> 2237 bytes UnicodeAlg.class | Bin 0 -> 1898 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Cipher.class create mode 100644 Crypto.class create mode 100644 DataProcess.class create mode 100644 Main.class create mode 100644 ShiftAlg.class create mode 100644 UnicodeAlg.class diff --git a/Cipher.class b/Cipher.class new file mode 100644 index 0000000000000000000000000000000000000000..6c04d461cd70ae40ca755dddc67a29ee389d145d GIT binary patch literal 178 zcmX^0Z`VEs1_pBmE_MbEb_PyH2KLmvc}z9<^$Svb3nT}j2nZqH4RG%b$p7>>m%$WsuUtSD;G<8TeSH z$5WYzG>jvL4X@Q-FbvWpjKA-7Ta;_K^B2?2z8nAm literal 0 HcmV?d00001 diff --git a/DataProcess.class b/DataProcess.class new file mode 100644 index 0000000000000000000000000000000000000000..62830fb9d3738f782d7d53702361626cbae64b98 GIT binary patch literal 3170 zcmaJ@YjYFV8Geqm(yqmV@f{l*6lxq>LYPo+5-ZSPgM*82jU5Qkrd>-LYq7kmXjcR$ zZPTRbHN7RhL3&Ty@$@#6W{T;Anf!qMfPU*Q=uD?ylbMh{?@G3Xt;U{ndCxiT?K#hR zSO2*8?t1_p#_yXjfO+W_qQm%CJ@w zcmXfU&KGrjNynEJnyliIS9XHJibCtuHS4-HT(sP!;rXEKxJy|c@Je>s3LMW>*p;^e zYqk||_fV7ro1yBp1%)_g z7bM{5;1ENOKjyeja9W{r@aoQBhb}TPM+|h*VaH= zLC+QJ+_GJ!l`9In=L0LZJZ+W2)O4KD@e)H96er5wN)^!=QA(8Xx@<*Ms*Rn(=}Ouj1y<-N@M`xmG5TkQgT2Y6MX~V8Gowe2!I|V%2zcJ=t)x|=vE{4p_zArmR-($XD~E`y^cviJ&t=S?cW#LE~}h-Fqt2NSR0s{}I> zaw(RPcz7}+IcgcN639TN>Uh<}*YI@{PvE>lOUT#y8`1F%6O;I+`1+QKZ{wJW*Dz}0 zJL0-)JHKl=k$d6JeK?AV?@ISQ6W_-VOuUXa2xvl~um123JWc!%KT_B`=6M03v`W)< zQ1J48a~wZ5@Dme1#d#e!P23XmZ{nCj&;KVk4Q&NIyLipc5sSK|>N^eTOtKmU%P&;l zSKNNCViifvj(SE_Eo6sC$0~T?W1n;bdr4?&l&rFEQ{1Ljs|NC7>V2>Jfz7(nu}QE= zw^Rvu*tS+kt9>=kgtdM{UX|h6Hv*{ud?YdrUB+@n&*#d05pTGrQdfN@LUySWSuv+G z?-`m2abRw7t5mYxyh5g4Wy93RP&*oOZ7ZQUR>6&g68IT@uF$_wu*-JR@sqBXe3s8H z`8>;K(y!zSNh|4EEB0toG1wJr*&g@YoE2Q+K4*Slxq;M*4f@m>X9^{8RV3k!z^g{8 z;}^n~-_Yk42ORghw`|wybJhNYl?%M`s*c|>^C{0;u9R3;CZ$4+7cJkn>GWnj5H%ZB zVxG6$e9`v%tBTnj;MA|&r?{|MvgjevM*N zIPmf3kmUFBL4N3Bh)5OUEFy&{99fIPk>w~HS&=yEY{NJPg@?i!UpU8D>TghQa}vRE z_VIAB8K30btRBD#oTLPdG*pgkS8i*l{BT3%=yv6yr&{&fh@{kQL{qKCZD^_JZN#FdqNn@P@4cl`>AvHm zT4W^Ft*xW!Pa%3Y*;9XAew{3%<3F<;Uqfe`$QRJrFPHIRXMF4Tm-qlNjdA-lP$X{Xk3WOKWfn8-@c z=7H!Mc5e!bCfDx$v-eFLx{J2U@1Xq-I%ZOtb#w}t9J^?r!@j>VglHI48NHkzf`%p} z_}`3O=padZ@Cokp^ZzjZ%Qx`>-@}JUs|1dy-56F~{O)w)A=Qf$Y6vG)8YAi`9#xO< zqnyPlbq@XN0>;!V#?=*^Rf{;Mu3Mr(QChvNu1+61@&^JSD4%|X}S|D4;!PX?ZOKTtfo0mNO4i2T> zB`R1)e|jB<-=^{#HX28 z5B5<{@*g4gQ`C=0ptK>i#^BB@?Wi#SPH6YgqoZ5LejRP^qiamZ115EaToL;DHOB-` U{}ONESNySlJ+z_lJlAgg4~xmcG5`Po literal 0 HcmV?d00001 diff --git a/Main.class b/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..4f0c5c39762f664f8f50a1b5e82765fb906b8420 GIT binary patch literal 1131 zcmZuwO-~b16g_V`?Ud<2p->PCf{M@rrG8elh!Tv6NsA^`5_C1RV>?(nbvl@+8>4Y& z+~~$%z`~WAl1SnY@ISb7?cR-gUaO%QoMhgeciy=l=iWD8e|`P};1X7K#4xKNsY8)A zr9;J>T;_F5Vu3PK7J6o1}*W9WRiRGP=S=%sOTkijYs#mp}0`a_6FS$<}UfF7!Ou@A4IR@LI z6&OxF$ZwlZ%uLO!S29J%s{POt81;p?*I}*JDh94%#lSUOr*yK##Xu^#W5 zH97BO7r&Dym%7jXH7#$=Zd5IoElT>w(K%@kUMo8VvtpM7CXdj%dPy!$V1Tz>J_@KB zLtNwBWoQL$aBd&sQ~P+BYp4wdFv4%6L%=bNa@T_~B#6*i#1TM{*!u%0oBIgl51?)` zP_VGjLTFvds_7QAk7NK@zRHj9&%V(nLa%EtY3I_ha0@*j5D#S4Jw($ny}b>oSv9V9 z{8pqNU-=~X%3>Gi4-jEOqlMmirs~_nAfYIs{(q3v5`fe)!znE&tw1AMIY+HI3{Src!T4ZWX=IHr`SXVCy7rW^czbEYB;4q(V%LWW?g-e O@z_rW6F5zhf|);m)&M8~ literal 0 HcmV?d00001 diff --git a/ShiftAlg.class b/ShiftAlg.class new file mode 100644 index 0000000000000000000000000000000000000000..4c458f65cddd2718d7328964ccdb65318fd3da87 GIT binary patch literal 2237 zcmbtVYf~Fl7=8{(*sv_Ov?+xai`q*1 zezY^yqNBDQ#^RS+435nB1N=#yQGCuOgb<33<79UCJv z972~L?^K}~-3oeCc+sWeG~QKl1{dV(Jr(bxS6Ub4M4xoIB&~jlT~=^K!BrLY7*J7% zYjXO!v zFQuKR;eI;D5@yWlP0IL6VM^dgsNC(6?&za-Dq>_Z-Ewn}m7Nn11AI(@ir9j{{(R16 zs`Ij$G$w4*F>FQ^%qUo#8W`zcj2LOhOj(?(j&6q)IQ&nWvV7afWRs4pp`4tHSu+`R zcdHq5^vLXxo_5PtFrnaMR#vE1KpjhE?T8^W6sXxM{*(-;;Rsp1@R^1wFzz%W8ln<55YrHsUI~!5 zfE#HCV**+!D3h9zuUQRAxo%DlEt%-PEx!^@HKfq0Ag$pJYy}w&4zkR6577ncw`&=h zo-rb%H(2J}XQmT|O=8OMl9t#JC*Q9mJ#IMChn*1$?~+XRbJDQlPQvYHHd19Iq1(Mo zz#AF}_ifeZ9)Uj2=n?jlfZxmv8jfpvLw(_!+{d({#^OjUzfcC^#@CG{8hScySW$Ks zJ$GfW-88j@Oh>X#zA+Rt(?6GX7=lNQTLeS9R=cO5p@0_@bTPk^+G4=BAP<3nFOp1U z_^nIxBs*@0ja4e2!a=WmbCEat81=YN3&p615rf00-F22WOUd|r3?rR9R)%sC`AZl5A z9f_*vfo|YY4!|b9$eFun#C;sZH)!Je!;H|3CnWqw+CP!(=cHNkc9k4^(}3sh+@;G0!&K&hnD*`k0?3j(gbOu*Y)e7genyhOlgQNZOA-KPFk zw{QQaZcBK8hh@4QC11y=&T(>og1m=#KZkLPoSVc`%a_r#N4tTWe7_qoCWpqHfD2x~&#BtKtuDQM&&I`m+=?wubSF1>Y6M5H{tIeIV4A$+k$H+*&=Gfkb9k|Nx z1hsI>Z3vvsOWz50>tRJkpX?pqby#P?tIi4Nout5-)X|04?a*EeYL09)=G5`R<+Ci% zbN`XRSbp37#?HF6>o<3D zTXsMOJ$HF%B9M)y7YZcX)jivs6xD2a2KXJXo>okpw!XNU%d&z$n(5 zfg=@MYIvx^tRiCKRU~z+m{>(Y$C`;xaa-VIMDqAqI*KONamU04ZkyP|XC_K0uoK5s z5iq-h>ZH%r>#m6}P%!bOa=$`SVD!bhF5OIgt$^J#VWX_WF;M~WC;zso0z-$O3*~L; zP&Dhv@|;`Wl7YafBk``5Q@W}QRe;S-rH`r3hISp)?gZQ9NxvFyMH9=ewHZbFsb<;^ zr-Xx`=5MX$`r!hxjiQ~XNIF#Z&-UlCH_bawLskQY7I3qbq-q?P1rh_Fw)I`w-L%6(yld? z+-*iIyw=_mNPCBZy=-t-m^w#=J)ir!k+yqBR5%NZ_YJ3!mrsljN0r_wT3LPtzwxPk zh{rT~aGLK#6ii^8w%J~Q*YG+${?A!1+AJ0j=MVUPx`mz=Vo!~g18Ajv#8+dNHA~Ap z`w5d7OH*k}`vr-@482*p`n?}p=-vE56MKLDPQUM0TsnYJIzWF(x%)8pF>qB&YBMbi zws0b;wJ@}YF%@cIWDmyA7-eqkF|jP6if!J3u?YJjhKNbsjr|xQ`f&^(jX~b5Cgz!2 zVzh)&lrhGAC%MytM|mF74k^rctfF||gw9MF6FA2kx5NtP@dhoAoG0-nEi&(@qO1!@ z5sQI ro~N7>lyj1DUZ6NB%9*B|8Iqo&MAMWrLpf(D=f(e1&WqH#2XFlaZXTla literal 0 HcmV?d00001 From c127a40b458327ab1d743c35c2e32530f12bcb78 Mon Sep 17 00:00:00 2001 From: Jaroslav Date: Tue, 14 May 2019 16:39:02 +0300 Subject: [PATCH 2/8] Delete Cipher.class --- Cipher.class | Bin 178 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Cipher.class diff --git a/Cipher.class b/Cipher.class deleted file mode 100644 index 6c04d461cd70ae40ca755dddc67a29ee389d145d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmX^0Z`VEs1_pBmE_MbEb_PyH2KLmv Date: Tue, 14 May 2019 16:39:13 +0300 Subject: [PATCH 3/8] Delete Crypto.class --- Crypto.class | Bin 893 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Crypto.class diff --git a/Crypto.class b/Crypto.class deleted file mode 100644 index fbd671e44ab2a520b078553031f4f28075bd0153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 893 zcmZ`%!EVz)5PfSqc5QEH2u(^#p@pX4Bv8YNLr^b4oKlLEst0ZxXO+4Qc5oadK7}vf zj08n+-~;$5#H?*KQ78xR%+9`j@9lVg|M~d~z;irvU}M|H8tyu{hn+R-I=GJqF80t= z%f5w&79KH}K{!2=3BzVzMnUp%nvP@^{9bm@CCG~~3e!Ud-D{mP7`=ET8P@w@Bwx?p z4P|m7h7+n(`*9#9ry>c}z9<^$Svb3nT}j2nZqH4RG%b$p7>>m%$WsuUtSD;G<8TeSH z$5WYzG>jvL4X@Q-FbvWpjKA-7Ta;_K^B2?2z8nAm From f584151953ff0a25ad94ee0cb5968774c023fbdf Mon Sep 17 00:00:00 2001 From: Jaroslav Date: Tue, 14 May 2019 16:39:23 +0300 Subject: [PATCH 4/8] Delete UnicodeAlg.class --- UnicodeAlg.class | Bin 1898 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 UnicodeAlg.class diff --git a/UnicodeAlg.class b/UnicodeAlg.class deleted file mode 100644 index 9ee857d59b0c232c2bc7d51648483e51561393f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1898 zcmcgs-Bue_7~O|VGB6C3zpBtKtuDQM&&I`m+=?wubSF1>Y6M5H{tIeIV4A$+k$H+*&=Gfkb9k|Nx z1hsI>Z3vvsOWz50>tRJkpX?pqby#P?tIi4Nout5-)X|04?a*EeYL09)=G5`R<+Ci% zbN`XRSbp37#?HF6>o<3D zTXsMOJ$HF%B9M)y7YZcX)jivs6xD2a2KXJXo>okpw!XNU%d&z$n(5 zfg=@MYIvx^tRiCKRU~z+m{>(Y$C`;xaa-VIMDqAqI*KONamU04ZkyP|XC_K0uoK5s z5iq-h>ZH%r>#m6}P%!bOa=$`SVD!bhF5OIgt$^J#VWX_WF;M~WC;zso0z-$O3*~L; zP&Dhv@|;`Wl7YafBk``5Q@W}QRe;S-rH`r3hISp)?gZQ9NxvFyMH9=ewHZbFsb<;^ zr-Xx`=5MX$`r!hxjiQ~XNIF#Z&-UlCH_bawLskQY7I3qbq-q?P1rh_Fw)I`w-L%6(yld? z+-*iIyw=_mNPCBZy=-t-m^w#=J)ir!k+yqBR5%NZ_YJ3!mrsljN0r_wT3LPtzwxPk zh{rT~aGLK#6ii^8w%J~Q*YG+${?A!1+AJ0j=MVUPx`mz=Vo!~g18Ajv#8+dNHA~Ap z`w5d7OH*k}`vr-@482*p`n?}p=-vE56MKLDPQUM0TsnYJIzWF(x%)8pF>qB&YBMbi zws0b;wJ@}YF%@cIWDmyA7-eqkF|jP6if!J3u?YJjhKNbsjr|xQ`f&^(jX~b5Cgz!2 zVzh)&lrhGAC%MytM|mF74k^rctfF||gw9MF6FA2kx5NtP@dhoAoG0-nEi&(@qO1!@ z5sQI ro~N7>lyj1DUZ6NB%9*B|8Iqo&MAMWrLpf(D=f(e1&WqH#2XFlaZXTla From fee5e7a525af697cc2c5ee1ce9b1729bc86a8796 Mon Sep 17 00:00:00 2001 From: Jaroslav Date: Tue, 14 May 2019 16:45:40 +0300 Subject: [PATCH 5/8] Delete DataProcess.class --- DataProcess.class | Bin 3170 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 DataProcess.class diff --git a/DataProcess.class b/DataProcess.class deleted file mode 100644 index 62830fb9d3738f782d7d53702361626cbae64b98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3170 zcmaJ@YjYFV8Geqm(yqmV@f{l*6lxq>LYPo+5-ZSPgM*82jU5Qkrd>-LYq7kmXjcR$ zZPTRbHN7RhL3&Ty@$@#6W{T;Anf!qMfPU*Q=uD?ylbMh{?@G3Xt;U{ndCxiT?K#hR zSO2*8?t1_p#_yXjfO+W_qQm%CJ@w zcmXfU&KGrjNynEJnyliIS9XHJibCtuHS4-HT(sP!;rXEKxJy|c@Je>s3LMW>*p;^e zYqk||_fV7ro1yBp1%)_g z7bM{5;1ENOKjyeja9W{r@aoQBhb}TPM+|h*VaH= zLC+QJ+_GJ!l`9In=L0LZJZ+W2)O4KD@e)H96er5wN)^!=QA(8Xx@<*Ms*Rn(=}Ouj1y<-N@M`xmG5TkQgT2Y6MX~V8Gowe2!I|V%2zcJ=t)x|=vE{4p_zArmR-($XD~E`y^cviJ&t=S?cW#LE~}h-Fqt2NSR0s{}I> zaw(RPcz7}+IcgcN639TN>Uh<}*YI@{PvE>lOUT#y8`1F%6O;I+`1+QKZ{wJW*Dz}0 zJL0-)JHKl=k$d6JeK?AV?@ISQ6W_-VOuUXa2xvl~um123JWc!%KT_B`=6M03v`W)< zQ1J48a~wZ5@Dme1#d#e!P23XmZ{nCj&;KVk4Q&NIyLipc5sSK|>N^eTOtKmU%P&;l zSKNNCViifvj(SE_Eo6sC$0~T?W1n;bdr4?&l&rFEQ{1Ljs|NC7>V2>Jfz7(nu}QE= zw^Rvu*tS+kt9>=kgtdM{UX|h6Hv*{ud?YdrUB+@n&*#d05pTGrQdfN@LUySWSuv+G z?-`m2abRw7t5mYxyh5g4Wy93RP&*oOZ7ZQUR>6&g68IT@uF$_wu*-JR@sqBXe3s8H z`8>;K(y!zSNh|4EEB0toG1wJr*&g@YoE2Q+K4*Slxq;M*4f@m>X9^{8RV3k!z^g{8 z;}^n~-_Yk42ORghw`|wybJhNYl?%M`s*c|>^C{0;u9R3;CZ$4+7cJkn>GWnj5H%ZB zVxG6$e9`v%tBTnj;MA|&r?{|MvgjevM*N zIPmf3kmUFBL4N3Bh)5OUEFy&{99fIPk>w~HS&=yEY{NJPg@?i!UpU8D>TghQa}vRE z_VIAB8K30btRBD#oTLPdG*pgkS8i*l{BT3%=yv6yr&{&fh@{kQL{qKCZD^_JZN#FdqNn@P@4cl`>AvHm zT4W^Ft*xW!Pa%3Y*;9XAew{3%<3F<;Uqfe`$QRJrFPHIRXMF4Tm-qlNjdA-lP$X{Xk3WOKWfn8-@c z=7H!Mc5e!bCfDx$v-eFLx{J2U@1Xq-I%ZOtb#w}t9J^?r!@j>VglHI48NHkzf`%p} z_}`3O=padZ@Cokp^ZzjZ%Qx`>-@}JUs|1dy-56F~{O)w)A=Qf$Y6vG)8YAi`9#xO< zqnyPlbq@XN0>;!V#?=*^Rf{;Mu3Mr(QChvNu1+61@&^JSD4%|X}S|D4;!PX?ZOKTtfo0mNO4i2T> zB`R1)e|jB<-=^{#HX28 z5B5<{@*g4gQ`C=0ptK>i#^BB@?Wi#SPH6YgqoZ5LejRP^qiamZ115EaToL;DHOB-` U{}ONESNySlJ+z_lJlAgg4~xmcG5`Po From e9d0b5b9b63956bc42c2dde9fdfd8378c3a0c202 Mon Sep 17 00:00:00 2001 From: Jaroslav Date: Tue, 14 May 2019 16:45:51 +0300 Subject: [PATCH 6/8] Delete Main.class --- Main.class | Bin 1131 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Main.class diff --git a/Main.class b/Main.class deleted file mode 100644 index 4f0c5c39762f664f8f50a1b5e82765fb906b8420..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcmZuwO-~b16g_V`?Ud<2p->PCf{M@rrG8elh!Tv6NsA^`5_C1RV>?(nbvl@+8>4Y& z+~~$%z`~WAl1SnY@ISb7?cR-gUaO%QoMhgeciy=l=iWD8e|`P};1X7K#4xKNsY8)A zr9;J>T;_F5Vu3PK7J6o1}*W9WRiRGP=S=%sOTkijYs#mp}0`a_6FS$<}UfF7!Ou@A4IR@LI z6&OxF$ZwlZ%uLO!S29J%s{POt81;p?*I}*JDh94%#lSUOr*yK##Xu^#W5 zH97BO7r&Dym%7jXH7#$=Zd5IoElT>w(K%@kUMo8VvtpM7CXdj%dPy!$V1Tz>J_@KB zLtNwBWoQL$aBd&sQ~P+BYp4wdFv4%6L%=bNa@T_~B#6*i#1TM{*!u%0oBIgl51?)` zP_VGjLTFvds_7QAk7NK@zRHj9&%V(nLa%EtY3I_ha0@*j5D#S4Jw($ny}b>oSv9V9 z{8pqNU-=~X%3>Gi4-jEOqlMmirs~_nAfYIs{(q3v5`fe)!znE&tw1AMIY+HI3{Src!T4ZWX=IHr`SXVCy7rW^czbEYB;4q(V%LWW?g-e O@z_rW6F5zhf|);m)&M8~ From 4f2b163897cc7dc38ad8438d93c2b7f1328830d5 Mon Sep 17 00:00:00 2001 From: Jaroslav Date: Tue, 14 May 2019 16:46:05 +0300 Subject: [PATCH 7/8] Delete ShiftAlg.class --- ShiftAlg.class | Bin 2237 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 ShiftAlg.class diff --git a/ShiftAlg.class b/ShiftAlg.class deleted file mode 100644 index 4c458f65cddd2718d7328964ccdb65318fd3da87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2237 zcmbtVYf~Fl7=8{(*sv_Ov?+xai`q*1 zezY^yqNBDQ#^RS+435nB1N=#yQGCuOgb<33<79UCJv z972~L?^K}~-3oeCc+sWeG~QKl1{dV(Jr(bxS6Ub4M4xoIB&~jlT~=^K!BrLY7*J7% zYjXO!v zFQuKR;eI;D5@yWlP0IL6VM^dgsNC(6?&za-Dq>_Z-Ewn}m7Nn11AI(@ir9j{{(R16 zs`Ij$G$w4*F>FQ^%qUo#8W`zcj2LOhOj(?(j&6q)IQ&nWvV7afWRs4pp`4tHSu+`R zcdHq5^vLXxo_5PtFrnaMR#vE1KpjhE?T8^W6sXxM{*(-;;Rsp1@R^1wFzz%W8ln<55YrHsUI~!5 zfE#HCV**+!D3h9zuUQRAxo%DlEt%-PEx!^@HKfq0Ag$pJYy}w&4zkR6577ncw`&=h zo-rb%H(2J}XQmT|O=8OMl9t#JC*Q9mJ#IMChn*1$?~+XRbJDQlPQvYHHd19Iq1(Mo zz#AF}_ifeZ9)Uj2=n?jlfZxmv8jfpvLw(_!+{d({#^OjUzfcC^#@CG{8hScySW$Ks zJ$GfW-88j@Oh>X#zA+Rt(?6GX7=lNQTLeS9R=cO5p@0_@bTPk^+G4=BAP<3nFOp1U z_^nIxBs*@0ja4e2!a=WmbCEat81=YN3&p615rf00-F22WOUd|r3?rR9R)%sC`AZl5A z9f_*vfo|YY4!|b9$eFun#C;sZH)!Je!;H|3CnWqw+CP!(=cHNkc9k4^(}3sh+@;G0!&K&hnD*`k0?3j(gbOu*Y)e7genyhOlgQNZOA-KPFk zw{QQaZcBK8hh@4QC11y=&T(>og1m=#KZkLPoSVc`%a_r#N4tTWe7_qoCWpqHfD2x~&# Date: Tue, 14 May 2019 17:09:36 +0300 Subject: [PATCH 8/8] Add files via upload --- src/crypto/Cipher.java | 6 +++ src/crypto/Crypto.java | 19 +++++--- src/crypto/DataProcess.java | 87 +++++++++++++++++++++++++++++++++++++ src/crypto/Main.java | 19 ++++++++ src/crypto/ShiftAlg.java | 57 ++++++++++++++++++++++++ src/crypto/UnicodeAlg.java | 49 +++++++++++++++++++++ 6 files changed, 231 insertions(+), 6 deletions(-) create mode 100644 src/crypto/Cipher.java create mode 100644 src/crypto/DataProcess.java create mode 100644 src/crypto/Main.java create mode 100644 src/crypto/ShiftAlg.java create mode 100644 src/crypto/UnicodeAlg.java diff --git a/src/crypto/Cipher.java b/src/crypto/Cipher.java new file mode 100644 index 0000000..da20caa --- /dev/null +++ b/src/crypto/Cipher.java @@ -0,0 +1,6 @@ +package encryptdecrypt; + +interface Cipher { + void encrypt(DataProcess dataProcess); + void decrypt(DataProcess dataProcess); +} diff --git a/src/crypto/Crypto.java b/src/crypto/Crypto.java index 51d57b7..02745d8 100644 --- a/src/crypto/Crypto.java +++ b/src/crypto/Crypto.java @@ -1,10 +1,17 @@ -package crypto; +package encryptdecrypt; -import java.util.Scanner; +class Crypto { + private Cipher cipher; -public class Crypto { - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - // write your code here + void setCipher(Cipher cipher) { + this.cipher = cipher; + } + + void doMagic(DataProcess dataProcess) { + if (dataProcess.getOperation().equals("enc")) { + this.cipher.encrypt(dataProcess); + } else { + this.cipher.decrypt(dataProcess); + } } } diff --git a/src/crypto/DataProcess.java b/src/crypto/DataProcess.java new file mode 100644 index 0000000..f357a4b --- /dev/null +++ b/src/crypto/DataProcess.java @@ -0,0 +1,87 @@ +package encryptdecrypt; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.util.Scanner; + +class DataProcess { + private String algorithm; + private String operation = "enc"; + private String dataOutFile = null; + private String data = ""; + private int key = 0; + + String getAlgorithm() { + return algorithm; + } + + String getOperation() { + return operation; + } + + String getDataOutFile() { + return dataOutFile; + } + + String getData() { + return data; + } + + int getKey() { + return key; + } + + DataProcess(String[] args) { + boolean checker = false; + for (int i = 0; i < args.length; i++) { + switch (args[i]) { + case "-mode": { + this.operation = args[++i]; + break; + } + case "-key": { + this.key = Integer.parseInt(args[++i]); + break; + } + case "-data": { + this.data = args[++i]; + checker = true; + break; + } + case "-in": { + this.data = DataProcess.dataFromFile(args[++i]); + checker = true; + break; + } + case "-out": { + this.dataOutFile = args[++i]; + break; + } + case "-alg": { + this.algorithm = args[++i]; + break; + } + } + } + if (!checker) { + Scanner sc = new Scanner(System.in); + this.data = sc.nextLine(); + this.key = sc.nextInt(); + sc.close(); + } + } + + private static String dataFromFile(String dataInFile) { + StringBuilder str = new StringBuilder(); + try { + FileReader in = new FileReader(dataInFile); + Scanner scanner = new Scanner(in); + while (scanner.hasNext()) { + str.append(scanner.nextLine()).append("\n"); + } + } catch (FileNotFoundException e) { + System.out.println("There is no file with such a name: " + dataInFile); + } + return str.toString(); + } +} diff --git a/src/crypto/Main.java b/src/crypto/Main.java new file mode 100644 index 0000000..c024e17 --- /dev/null +++ b/src/crypto/Main.java @@ -0,0 +1,19 @@ +package encryptdecrypt; + +public class Main { + public static void main(String[] args) { + Crypto crypto = new Crypto(); + DataProcess dataProcess = new DataProcess(args); + + switch (dataProcess.getAlgorithm()) { + case "unicode": + crypto.setCipher(new UnicodeAlg()); + crypto.doMagic(dataProcess); + break; + case "shift": + crypto.setCipher(new ShiftAlg()); + crypto.doMagic(dataProcess); + break; + } + } +} diff --git a/src/crypto/ShiftAlg.java b/src/crypto/ShiftAlg.java new file mode 100644 index 0000000..e5c0853 --- /dev/null +++ b/src/crypto/ShiftAlg.java @@ -0,0 +1,57 @@ +package encryptdecrypt; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + +class ShiftAlg implements Cipher { + private String abc = "abcdefghijklmnopqrstuvwxyz"; + + @Override + public void encrypt(DataProcess dataProcess) { + StringBuilder result = new StringBuilder(); + for (int i = 0; i < dataProcess.getData().length(); i++) { + if (Character.isLetter(dataProcess.getData().charAt(i))) { + int num = abc.indexOf(dataProcess.getData().charAt(i)) + dataProcess.getKey(); + result.append(abc.charAt(num > abc.length() - 1 ? num - abc.length() : num)); + } else { + result.append(dataProcess.getData().charAt(i)); + } + } + if (!dataProcess.getDataOutFile().isEmpty()) { + try { + FileWriter fw = new FileWriter(new File(dataProcess.getDataOutFile())); + fw.write(result.toString()); + fw.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + System.out.println(result); + } + } + + @Override + public void decrypt(DataProcess dataProcess) { + StringBuilder result = new StringBuilder(); + for (int i = 0; i < dataProcess.getData().length(); i++) { + if (Character.isLetter(dataProcess.getData().charAt(i))) { + int num = abc.indexOf(dataProcess.getData().charAt(i)) - dataProcess.getKey(); + result.append(abc.charAt(num < 0 ? num + abc.length() : num)); + } else { + result.append(dataProcess.getData().charAt(i)); + } + } + if (!dataProcess.getDataOutFile().isEmpty()) { + try { + FileWriter fw = new FileWriter(new File(dataProcess.getDataOutFile())); + fw.write(result.toString()); + fw.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + System.out.println(result); + } + } +} diff --git a/src/crypto/UnicodeAlg.java b/src/crypto/UnicodeAlg.java new file mode 100644 index 0000000..7054f38 --- /dev/null +++ b/src/crypto/UnicodeAlg.java @@ -0,0 +1,49 @@ +package encryptdecrypt; + +import java.io.File; +import java.io.FileWriter; + +class UnicodeAlg implements Cipher{ + + @Override + public void encrypt(DataProcess dataProcess) { + int[] numChars = new int[dataProcess.getData().length()]; + StringBuilder result = new StringBuilder(); + for (int i = 0; i < numChars.length; i++) { + numChars[i] = Character.codePointAt(dataProcess.getData(), i); + result.append((char) (numChars[i] + dataProcess.getKey())); + } + if (dataProcess.getDataOutFile() != null) { + try { + FileWriter fw = new FileWriter(new File(dataProcess.getDataOutFile())); + fw.write(result.toString()); + fw.close(); + } catch (java.io.IOException e) { + e.printStackTrace(); + } + } else { + System.out.println(result); + } + } + + @Override + public void decrypt(DataProcess dataProcess) { + int[] numChars = new int[dataProcess.getData().length()]; + StringBuilder result = new StringBuilder(); + for (int i = 0; i < numChars.length; i++) { + numChars[i] = Character.codePointAt(dataProcess.getData(), i); + result.append((char) (numChars[i] - dataProcess.getKey())); + } + if (dataProcess.getDataOutFile() != null) { + try { + FileWriter fw = new FileWriter(new File(dataProcess.getDataOutFile())); + fw.write(result.toString()); + fw.close(); + } catch (java.io.IOException e) { + e.printStackTrace(); + } + } else { + System.out.println(result); + } + } +}