Poslao: 11 Maj 2008 23:59
|
offline
- Srki94
- Mod u pemziji
- Pridružio: 14 Feb 2008
- Poruke: 12402
|
Dragi gradjani MyCity-a treba mi pomoc. Sigurno neko od vas ima brata...
Ja imam napravio sam program koji ima password i koji sacuvava moj text u *.srk extenziju. Ali opet moze da se otvori preko notepada. Moj brat je to provalio pa sad cita moje stvari. Ako neko moze da mi pomogne da kada sacuvam text umesto da program sacuva text koji sam ja napisao da ga prebaci u neki kod ili string ili tako nesto. A kad ga ucitam da pise text koji sam sacuvao ali bez stringa. Ovo je sifrovanje texta. Molim vas pomognite ne mogu da podnesem vise da mi brat cita sve i svasta ( MOJE ). Hvala
P.S Dajte da ozivimo VB forum.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 12 Maj 2008 00:23
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Najlakse ti je da XOR-ujes podatke.
Posto ja "ne pricam" VB vec godinama, mogu samo da ti raspredem malo teorije.
U jednoj petlji ucitavas slovo po slovo u jednu string/char varijablu.
Onda u drugu integer varijablu uneses ASCII kod tog slova.
Nad tim integerom izvrsis XOR operaciju sa proizvoljnim brojem od 1 do 255 (A = A xor 17)
Pretvoris taj integer ponovo u string/char i upises u fajl.
Za povratnu operaciju moras da uradis ponovo XOR sa istim brojem sa kojim si uradio i pri "sifrovanju" (u nasem primeru sa brojem 17).
|
|
|
|
Poslao: 12 Maj 2008 00:44
|
offline
- Srki94
- Mod u pemziji
- Pridružio: 14 Feb 2008
- Poruke: 12402
|
Hvala ali moze li neko da ispise kod? Jer sam ja mislio da za svako slovo dam nov string tako da se svako slovo promeni. Hvala. * Bilo bi lepo da neko da kod za @bobby-ev opis. *
|
|
|
|
Poslao: 12 Maj 2008 01:04
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Srki94 ::Jer sam ja mislio da za svako slovo dam nov string tako da se svako slovo promeni.
Upravo ce to i da se desi.
Pogledaj prvo sledecu tabelu:
http://asciitable.com/
Vidis, svako slovo ima svoj ASCII kod (ukoliko su slova iz engleskog alfabeta).
Sada ukljuci onaj standardni Windowsov digitron.
Ukucaj kod 65 (ukoliko pogledas ASCII tabelu, to ti je slovo A).
Onda klikni na operaciju XOR i ukucaj 17 (radimo 65 xor 17).
Rezultat je 80.
Ukoliko pogledas ASCII tabelu ponovo, videces da je 80 kod za slovo P.
Sada iskoristi taj digitron i izracunaj 80 xor 17.
Dobices ponovo 65.
Upravo si se upoznao sa najbitnijom karakteristikom XOR operacije - u oba slucaja si koristio 17, i za kodiranje, i za dekodiranje.
Sada na tebi ostaje samo da potrazis kako se u VB-u dobija ASCII vrednost nekog slova, i kako se nakon toga od ASCII koda dobija string (da bi mogao sifrovan podatak da upises u fajl).
Na brzinu sam ti nasao sledeci link:
http://www.vbexplorer.com/VBExplorer/Focus/strings_tutorial_3.asp
Pogledaj naredbe CHR$ i ASC.
|
|
|
|
Poslao: 13 Maj 2008 00:31
|
offline
- karlos
- Građanin
- Pridružio: 25 Maj 2007
- Poruke: 114
- Gde živiš: Novi Sad, Sombor
|
Evo ti funkcija koja sifruje/desifruje tekst i to u zavisnosti od sifre. Sifra moze biti proizvoljne duzine od 1 do 50 karaktera. U zavisnosti od sifre, zavisi i nacin sifrovanja, jer svako slovo sifre ulazi u operaciju XOR. Napomena: Postoji nacin da sa razlicitim siframa dobijes isto konvertovanje npr: ma i mama, ta i tata ili ba i baba .....
Function Konvertovanje(Sifra As String, Tekst As String) As String
Dim Novi_Tekst As String
Dim Slovo As String * 1
Dim i As Long
Dim j As Long
Dim Duzina_Teksta As Long
Dim Duzina_Sifre As Integer
Dim Kod(50) As Integer
Dim Slovo_ASC As Integer
Duzina_Sifre = Len(Sifra)
Duzina_Teksta = Len(Tekst)
For i = 1 To Duzina_Sifre
Slovo = Mid(Sifra, i, 1)
Kod(i - 1) = Asc(Slovo)
Next i
Novi_Tekst = ""
For i = 1 To Duzina_Teksta
Slovo = Mid(Tekst, i, 1)
Slovo_ASC = Asc(Slovo)
j = i Mod Duzina_Sifre
Slovo_ASC = Slovo_ASC Xor Kod(j)
Novi_Tekst = Novi_Tekst + Chr(Slovo_ASC)
Next i
Konvertovanje = Novi_Tekst
End Function
samo trebas da pozoves funkciju u tvom programu:
npr:
Sifra=Text1.text
Novi_Tekst=Konvertovanje(Sifra,Tekst)
za rezultat konvertovanja nemoj koristiti TextBox, jer se prilikom konvertovanja dobijaju karakteri koji nisu vidljivi u TextBox-u i on ih ne pamti, nego koristi neki string. Za probu mozes napisati sledeci kod.
Private Sub Command1_Click()
Dim Pocetni_Tekst as String
Dim Sifrovani_Tekst as String
Dim DeSifrovani_Tekst as String
Dim Sifra as String
Sifra=Text1.Text
Pocetni_Tekst=Text2.Text
Sifrovani_Tekst=Konvertovanje(Sifra,Pocetni_Tekst)
Text3.Text=Sifrovani_Tekst
DeSifrovani_Tekst=Konvertovanje(Sifra,Sifrovani_Tekst)
Text4.Text=DeSifrovani_Tekst
End Sub
na formu postavi 4 TextBox-a
u Text1 unosis sifru, a u text2 unosis tekst koji zelis da sifrujes, u text3 se nalazi sifrovani tekst a u Text4 se nalazi desifrovani tekst.
U Properties podesi:
Text1 - MaxLength = 50 ili manje
Text2,Text3,Text4 - MultiLine=True, ScrollBars=3-Both
Text3,Text4 - Locked=True
|
|
|
|
|
|
Poslao: 14 Maj 2008 23:19
|
offline
- Srki94
- Mod u pemziji
- Pridružio: 14 Feb 2008
- Poruke: 12402
|
@ Bobby pa ajde uradi mi molim te. Samo mi kazi kako da nadjem ako naprimer slovo a ima bilo gde u textu.
|
|
|
|
Poslao: 14 Maj 2008 23:51
|
offline
- karlos
- Građanin
- Pridružio: 25 Maj 2007
- Poruke: 114
- Gde živiš: Novi Sad, Sombor
|
Recimo da pogledas Help->Index u Visual Basic-u nasao bi sledece:
InStr([start, ]string1, string2[, compare])
The InStr function syntax has these arguments:
Part Description
start Optional. Numeric expression that sets the starting position for each search. If omitted, search begins at the first character position. If start contains Null, an error occurs. The start argument is required if compare is specified.
string1 Required. String expression being searched.
string2 Required. String expression sought.
compare Optional. Specifies the type of string comparison. The compare argument can be omitted, or it can be 0, 1or 2. Specify 0 (default) to perform a binary comparison. Specify 1 to perform a textual, noncase-sensitive comparison. For Microsoft Access only, specify 2 to perform a comparison based on information contained in your database. If compare is Null, an error occurs. If compare is omitted, the Option Compare setting determines the type of comparison.
Znaci ako hoces da nadjes neku rec npr "Basic" u nekom tekstu npr "Visual Basic 6.0"
Tekst="Visual Basic 6.0"
Rec="Basic"
Mesto=InStr(1,Tekst,Rec)
Po izvrsenu ovog koda promenljiva Mesto bi dobila vrednost 8, tj poziciju reci u tekstu.
U slucaju da rec ne postoji u tekstu funkcija InStr vraca vrednost 0.
Bobby ti je dao link gde se nalazi ova i jos mnogo funkcija koje ce ti mozda zatrebati, kao naprimer Replace koja jedan string zamenjuje drugim.
|
|
|
|
Poslao: 15 Maj 2008 00:03
|
offline
- Srki94
- Mod u pemziji
- Pridružio: 14 Feb 2008
- Poruke: 12402
|
@ Karlos
Nemam MSDN
Dopuna: 15 Maj 2008 0:03
Ne razumem kod. Da li da deklarisem Tekst, Rec, Mesto?
|
|
|
|