Toon posts:

[VB] bitwise XOR

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil graag een XOR met een tekst doen.
Het moet een simpele manier van versleutelen worden.

VB.

"abc" XOR "def" =>
97,98,99 XOR 100,101,102 =>
5,7,5 =>
chr(5)&chr(7)&chr(5) //als string

Zoals ik het nu doe is nogal omslachtig nl
- eerst van een string een byte array maken
- dan van de sleutelstring een byte array maken
- Byte voor Byte XOR'en
- Van de Ontstane Bytearray weer een string maken

Werkt wel maar weet iemand een betere oplossing ??
Zijn hier standaard functies voor (msdn er al op na geslagen maar niet gevonden)

Enige tips zijn welkom. Ook wat betreft anders oplossen!!

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Je zou het "on the fly" kunnen doen...
code:
1
2
3
4
5
6
7
8
9
function f(x as string,y as string) as string

    'ik ga er van uit dat len(x)==len(y)
    dim c as integer
    
    for c = 1 to len(x)
      f=f & chr(cbyte(mid(x,c,1)) xor cbyte(mid(y,c,1)))
    next c
end function

Doet hetzelfde als wat jij nu doet maar byte per byte...

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 08-09 17:54

Sponge

Serious Game Developer

Check StrConv(), kun je strings in een keer in een array zetten (en weer terug).

Verwijderd

Topicstarter
Op donderdag 28 maart 2002 20:00 schreef XTerm89D het volgende:
Je zou het "on the fly" kunnen doen...
code:
1
2
3
4
5
6
7
8
9
function f(x as string,y as string) as string

    'ik ga er van uit dat len(x)==len(y)
    dim c as integer
    
    for c = 1 to len(x)
      f=f & chr(cbyte(mid(x,c,1)) xor cbyte(mid(y,c,1)))
    next c
end function

Doet hetzelfde als wat jij nu doet maar byte per byte...
Bedankt voor de tip:

Mijn uiteindelijke functie

Private Function Versleutel(ipsInput As String) As String
Dim lvlTeller As Long
Dim lvsSLEUTEL As String
Dim lvsResultaat As String

lvsSLEUTEL = "GEHEIMESLEUTEL"

'Sleutel langer maken dat de te versleutelen tekst
While Len(lvsSLEUTEL) < Len(ipsInput)
lvsSLEUTEL = lvsSLEUTEL & lvsSLEUTEL
Wend

For lvlTeller = 1 To Len(ipsInput)
lvsResultaat = lvsResultaat & Chr(Asc(Mid(ipsInput, lvlTeller, 1)) Xor Asc(Mid(lvsSLEUTEL, lvlTeller, 1)))
Next lvlTeller
Versleutel = lvsResultaat
End Function


Opmerking:
Na een tijdje zoeken kwam ik er achter dat de Bytewaarde van een karakter niet opgevraagd word met CBYTE zoals ik ook verwachtte maar met ASC.

In iedergeval bedankt voor de snelle reactie

Ik wilde niet dat wachtwoorden van gebruikers van mijn applicatie zomaar 1 op 1 in de DB stonden vandaar een encrypt en decrypt functie voor een string.

Het hoeft niet supper veilig te zijn. Want eigenlijk als iemand al in mijn DB kan kijken, zijn ze eigenlijk al te ver.

Ik hoop maar dat de Password protection van Access goed genoeg is. Al ben ik al bang van niet. 8-)

edit:

Ik had mijn code keurig uitgelijnd maar als ik het hier post dan is de opmaak weg.

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 08-09 17:54

Sponge

Serious Game Developer

Hmm, ik denk niet dat je wilt weten hoe slecht dat is...

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Op donderdag 28 maart 2002 21:33 schreef KingLois het volgende:
edit:

Ik had mijn code keurig uitgelijnd maar als ik het hier post dan is de opmaak weg.
daarvoor zijn de [code] tags :)

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • jkf
  • Registratie: Oktober 2000
  • Laatst online: 21-06-2025

jkf

Voor beveiliging geldt beter geen gevoel van veiligheid en weten dan je niet veilig bent dan een vals gevoel van veiligheid. Ik neem aan dat alle wachtwoorden ook nog eens met dezelfde string versleuteld worden, zonder "salt". Waarom pak je niet iets als 3des?

P II 233 @ begane grond, rip (1997-2007), vervangen door vituele server uptime,


  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
Op donderdag 28 maart 2002 21:33 schreef KingLois het volgende:

[..]

Ik hoop maar dat de Password protection van Access goed genoeg is. Al ben ik al bang van niet. 8-)

[..]
Ik zou er als ik jou was iig een .mde van maken zodat ze met shift niet zomaar je encryptie source kunnen bekijken/kraken/stelen... ook de shift bypass uitschakelen!

edit:

natuurlijk wel een kopietje van de source bewaren, anders kom je er niet zomaar meer in...
Pagina: 1