Projekti në lëndën Siguria e të Dhënave (Data Security), Grupi27.
Ky projekt u zhvillua në gjuhën programuese: Java SE Development Kit 8
Një console program me emrin ds i cili pranon komanda përmes argumenteve. Programi do t’i analizojë argumentet, dhe varësisht nga përmbajtja e tyre do ta ekzekutojë ndonjërën prej komandave:
- Count - Numëron paraqitjen e njësisë në tekst.
- Case - E konverton tekstin në madhësinë e dhënë.
- Tap-code - Enkodon tekstin në Tap Kodin dhe Dekodon vargun nga Tap Kodi në alfabet latin.
- Create-user - Krijon një çift të publik/privat të RSA me emrat .xml dhe .pub.xml brenda direktoriumit të çelësave keys si dhe një user që ruhet automatikisht në fajllin: Desktop/databasa.txt.
- Delete-user - I largon të gjithë çelësat ekzistues të shfrytëzuesit dhe largon userin nga databasa.
- Login - Mundson kyçjen e userit me anë të passwordit që është ruajtur si salt në databas dhe krijimin e një JWT tokeni ku si Subject të body-t pranon userin.
- Status - Tregon gjendjen e validimit të JWT tokenit.
- Export-key - Eksporton çelësin publik ose privat të shfrytëzuesit nga direktoriumi i çelësave.
- Import-key - Importon çelësin publik ose privat të shfrytëzuesit nga shtegu i dhënë dhe e vendos në direktoriumin e çelësave.
- Write-message - E shkruan një mesazh të enkriptuar të dedikuar për një shfrytëzues.
- Read-message - E dekripton dhe e shfaq në console mesazhin e enkriptuar.
- Install the JDK Software and Set JAVA_HOME on a Windows System
- Choosing your Java IDE(Për shkruarjen e programeve me anë të gjuhës programuese Java)
- Choosing your Command line (Për thirrjen e argumenteve - args passing)
Për këtë projekt u përdorën:
* IntelliJ IDEA 2019.1.2
* Git Bash
$ git clone https://github.com/aureldemiraj/ds-gr27-2020.git
$ cd ds-gr27-2020/Projekti_Siguri
$ ./ds.sh <komanda> <argumentet>
test@user MINGW64 ~/.../ds-gr27-2020/Projekti_Siguri
$ ./ds.sh create-user test
Skripta ./ds.sh.sh përmban kodin për ekzekutimin e ./ds.sh.jar (jar file qe e ka një main class me anë të së cilës mundet me u exec programi).
count | unit | text |
---|---|---|
komanda | lines,words, letters, symbols,vowels, consonants,sentences | Përshëndetje nga FIEK! |
Sintaksa :
$ ./ds.sh count lines "Pershendetje nga FIEK!"
$ ./ds.sh count words "Pershendetje nga FIEK!"
$ ./ds.sh count letters "Pershendetje nga FIEK!"
$ ./ds.sh count symbols "Pershendetje nga FIEK!"
$ ./ds.sh count vowels "Pershendetje nga FIEK!"
$ ./ds.sh count consonants "Pershendetje nga FIEK!"
$ ./ds.sh count sentences "Pershendetje. nga FIEK!"
case | case(funksioni) | text |
---|---|---|
komanda | upper,lower,capitalize,inverse,alternating,sentence | Përshëndetje nga FIEK! |
Sintaksa :
Shembull:
$ ./ds.sh case upper "Pershendetje nga FIEK!"```
$ ./ds.sh case lower "Pershendetje nga FIEK!"
$ ./ds.sh case capitalize "Pershendetje nga FIEK!"
$ ./ds.sh count inverse "Pershendetje nga FIEK!"
$ ./ds.sh count alternating "Pershendetje nga FIEK!"
$ ./ds.sh count sentence "pershendetje, Fjalia E pare. FJALIA E DYTE! fjAlia E trEte."
plaintext | ciphertext |
---|---|
neser | ... ... . ..... .... ... . ..... .... .. |
Sintaksa :
Shembull:
$ ./ds.sh tap-code encode "i can fly"
$ ./ds.sh tap-code decode ".. .... / . ... . . ... ... / .. . ... . ..... ...."
create-user | çelësat | formati | ruan userin |
---|---|---|---|
komanda | publik(.pub) dhe privat | .xml | database.txt |
Sintaksa :
Shembull:
delete-user | çelësat | formati | fshin userin |
---|---|---|---|
komanda | publik(.pub) dhe privat | .xml | database.txt |
Sintaksa :
Shembull:
$ ./ds.sh delete-user test
(në rast se ekziston vetëm çelësi publik)
$ ./ds.sh delete-user test
(në rast se ekziston vetëm çelësi privat)
login | user | lëshohet tokeni |
---|---|---|
komanda | logon userin nga baza e të dhënave | JWT format |
Sintaksa :
Shembull:
$ ./ds.sh login test
status | token |
---|---|
komanda | Nëse tokeni ka skaduar, nuk ka nënshkrim valid, ose nuk ekziston shfrytëzuesi, atëherë tokeni nuk konsiderohet valid. |
Sintaksa :
Shembull:
export-key | çelësi | export to |
---|---|---|
komanda | publik(.pub) ose privat | cmd ose file(opsionale) |
Sintaksa :
Shembull:
$ ./ds.sh export-key public test
$ ./ds.sh export-key privat test Path//celesi.xml
$ ./ds.sh export-key privat test
(në rast se nuk ekziston çelësi paraprak ne dir. keys)
import-key | import from | çelësi |
---|---|---|
komanda | path//filename.ext | dir. keys/name |
Sintaksa :
Shembull:
$ ./ds.sh import-key Path//publickey.ext edon
$ ./ds.sh import-key Path//privatekey.ext blerim
$ ./ds.sh import-key Path//somekey.ext edon
$ ./ds.sh import-key Path//somekey.ext blerim
(ne rast se wrong ext)
$ ./ds.sh import-key https://url publicfromrequest
write-message | enkriptimi | save encrypt | tokeni |
---|---|---|---|
komanda | me çelësin publik | ne cmd ose file(opsionale) | deshton komanda nese tokeni nuk eshte valid |
Sintaksa :
$ ./ds.sh write-message test "This is a plaintext"
$ ./ds.sh write-message edon "Takohemi ne route66 ora 6:00" Path/file.ext
$ ./ds.sh write-message blerim "Pershendetje"
$ ./ds.sh write-message edon "Takohemi ne route66 ora 6:00" Path/file.ext
$ ./ds.sh write-message fiek "tekst" Path/file.ext --sender <tokeni>
read-message | dekriptimi | load encrypt |
---|---|---|
komanda | me çelësin privat | nga cmd ose file(opsionale) |
Sintaksa :
$ ./ds.sh read-message "mesazhi i enkpritum"
$ ./ds.sh read-message Path//file.ext
(File në të cilin është ruajtur mesazhi enkriptuar)
$ ./ds.sh read-message <mesazhin e nenshkruar>
$ ./ds.sh read-message <mesazhin e nenshkruar>
Përshkrimi i projektit (Faza1,Faza2,Faza3)
Regards Grupi27 (Sferat e Dragoit).