Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Kryptaus kai tämäkin

JrPr [17.03.2005 16:04:53]

#

Tämä on eräs kryptauskoodi, joka on tarkoitettu merkkijonojen , esim. salasanojen kryptaukseen.
Toimintaidea on tämä: Muutetaan merkki kerralaan ASCII:ksi , lisätään siihen satunnainen luku ja luodaan sitten nyt syntyneelle merkkijonolle avauskoodi.
Eihän tää mikään huippuhieno ole, mutta ainahan sitä voi kehitellä...
Käyttö: Kopioi koodit dll:ään(ActivexDll) (tai muuta vähän ja käytä EXE:ssä)

kryptausfunktio

Public Function kryptaa(ss As String) As String 'funktiolle annetaan kryptattava  merkkijono
avain$ = ""     'tyhjennetään avain
For a = 1 To Len(ss)    'käydään läpi joka merkki
av$ = ""
alk:
Randomize
im = Asc(Mid(ss, a, 1))     'otetaan merkin ASCII- koodi
ran = Int(Rnd * 254) + 1    'arvotaan luku
im = im + ran               'lisätään se otettuun ascii-koodiin
If im = 13 Then GoTo alk            'jos enter, niin uusiksi
If im > 255 Then im = im - 255      'varmistetaan, ettei yli 255
If ran < 100 Then av$ = av$ + "0"   'lisätään tarvittaessa nollia, että pituus on 3
If ran < 10 Then av$ = av$ + "0"
av$ = av$ + CStr(ran) 'nyt on yksittäisen merkin koodi kolminumeroisena aASCII koodina tyyliin 065
avain$ = avain$ + av$ 'lisätään se avaimeen
sa$ = sa$ + Chr$(im)  'lisätään muutettu merkki kryptattuun merkkijonoon
Next a
kryptaa = sa$ + "," + avain$    'palauttaa arvon muodossa "kryptattu jono","avain"
End Function

kryptauksen avaus

Public Function dekryptaa(ss As String, avain As String) As String 'funktiolle annetaan kryptattu merkkijono ja avain
sala$ = ""
For a = 1 To Len(ss)    'käydään läpi merkki merkiltä
b$ = Mid(ss, a, 1)      'otetaan kohta kryptatusta merkkijonosta
d = (a - 1) * 3 + 1     'sen pituus avaimessa
c$ = Mid(avain, d, 3)   'otetaan kryptatun merkkijonon kohtaa vastaavat kolme merkkiä avaimessa
e = CInt(c$)            'muutetaan luvuksi
f = Asc(b$)             'käsiteltävän merkin ASCII-koodi
koodi = f - e           'muutetaan se avaimesta saadun luvun avulla takaisin selkeään muotoon eli dekryptataan
If koodi < 1 Then koodi = koodi + 255
sala$ = sala$ + Chr$(koodi) 'lisätään selkeään merkkijonoon
Next a
dekryptaa = sala$           'palauttaa selkeän merkkijonon
End Function

kryptauksen avaus suoraan kryptaa-funktion palauttamasta arvosta

Public Function sal(kirjoitus As String) As String 'funktiolle annetaan kryptausfunktion palauttaman kaltainen merkkijono, joka sisältää kryptatun merkkijonon ja avaimen pilkulla erotettuna
f = InStr(kirjoitus, ",")           'pilkun paikka
salasana$ = Left$(kirjoitus, f - 1)             'erotetaan merkkijono ja avain
avain$ = Right$(kirjoitus, Len(kirjoitus) - f)
sal = dekryptaa(salasana$, avain$)      'palauttaa dekryptausfunktion avulla selkeän merkkijonon
End Function

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta