Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

functie omzetten van asp naar c#

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

  • haroldd
  • Registratie: April 2004
  • Laatst online: 28-11 19:42
heb de volgende functie

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function XORDecryption(CodeKey, DataIn) 
    
    Dim lonDataPtr 
    Dim strDataOut 
    Dim intXOrValue1 
    Dim intXOrValue2 
    

    For lonDataPtr = 1 To (Len(DataIn) / 2)
        'The first value to be XOr-ed comes from the data to be encrypted
        intXOrValue1 = ("&H" & (Mid(DataIn, (2 * lonDataPtr) - 1, 2)))
        'The second value comes from the code key
        intXOrValue2 = Asc(Mid(CodeKey, ((lonDataPtr Mod Len(CodeKey)) + 1), 1))
        
        strDataOut = strDataOut & Chr(intXOrValue1 Xor intXOrValue2)
    Next 
   XORDecryption = strDataOut
End Function


ik wil deze graag omzetten naar c#. als ik dit probeer

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public string DeCrypt(string CodeKey, string DataIn)
    {
    
        int lonDataPtr;
        string strDataOut="";
        int intXOrValue1,intXOrValue2;
       

        for (lonDataPtr = 1; lonDataPtr < ((DataIn.Length) / 2); lonDataPtr++) 
        {    //'The first value to be XOr-ed comes from the data to be encrypted
            intXOrValue1 = Convert.ToInt32((((Mid(DataIn, (2 * lonDataPtr), 2)))),16);
            //intXOrValue1 = ("&H" + (Mid(DataIn, (2 * lonDataPtr) - 1, 2)));
            //'The second value comes from the code key
            intXOrValue2 = Asc(Mid(CodeKey, ((lonDataPtr % (CodeKey.Length))+ 1), 1));
            
            strDataOut = strDataOut + Chr(intXOrValue1 ^ intXOrValue2);

        }
       return strDataOut;
    }


het probleem is dat hij nu niet bij het eerste karakter begint. als ik in vs2005 debug krijg ik alles goed gedecrypt alleen begint hij niet bij het eerste karakter. en dan crasht hij vervolgens op de 2e mid functie. ik heb al geprobeerd om de for loop bij 0 te laten beginnen, maar ik zie iets over het hoofd want ik krijg het niet goed. of bij het eerste karakter of bij het laatste gaat het fout. wat zie ik over het hoofd? :s

Werken is gezond, laat het daarom over aan de zieken!


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Beginnen bij 0 en eindigen op (DataIn.Length - 1) / 2) zou mijn eerste gok zijn. Heb je dat al geprobeerd? Welke andere waarden heb je al geprobeerd? Als je stap voor stap door de code heen loopt met een dataIn met lengte van 2 of 3 wat gebeurt er dan precies? Met debuggen moet je er toch vrji snel achter zijn wat het probleem nu precies is lijke me?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • haroldd
  • Registratie: April 2004
  • Laatst online: 28-11 19:42
Creepy schreef op maandag 17 september 2007 @ 20:38:
Beginnen bij 0 en eindigen op (DataIn.Length - 1) / 2) zou mijn eerste gok zijn. Heb je dat al geprobeerd? Welke andere waarden heb je al geprobeerd? Als je stap voor stap door de code heen loopt met een dataIn met lengte van 2 of 3 wat gebeurt er dan precies? Met debuggen moet je er toch vrji snel achter zijn wat het probleem nu precies is lijke me?
ja maar door dat -1 stopt hij voordat hij het laatste karakter omzet. ik snap niet waarom bij de classic asp functie wel bij 1 kan beginnen en dan alles doorloopt.

heb ook (dataln.lengt/2)-1 geprobeerd. heb er koppijn van :), misschien morgen eens met een frisse blik kijken. helpt vaak ook wel :D

Werken is gezond, laat het daarom over aan de zieken!


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Klassiek gevalletje Off by one; je maakt me niet wijs dat je met wat debuggen (gebruik test-strings van 3 tot 5 tekens ofzo) en wat steppen door je code je er niet uit komt.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • haroldd
  • Registratie: April 2004
  • Laatst online: 28-11 19:42
wordt toch morgen ff kijken, want zie nu alleen maar debug variabelen voor m'n oogjes dansen. Ik ga morgen eens goed het verschil tussen de asp en c# versie bekijken. moet toch een simpel klein dingetje zijn lijkt me zo aangezien ie onder classic asp prima werkt

Werken is gezond, laat het daarom over aan de zieken!


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:52
ASP is geen taal, maar een platform. Je gebruikt VBSCript bij ASP 3.0.

In C# beginnen arrays vanaf index 0; in VBScript vanaf 1.
Als je zegt dat hij stopt voor het laatste karakter omgezet wordt, als je datalen - 1 doet, dan wil dat zeggen omdat je waarschijnlijk test op < datalen - 1 en niet <= datalen - 1 of < datalen doet.
Zowiezo vanaf 0 beginnen. Met wat debug-werk en logisch nadenken moet je er wel uitkomen, zoals Rob zegt.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.