English
Source / code snippets

Save Verschlüsseltes

 

Hubert
Binnewies
Hello together...

I knows...you Profan Profis tell I nothing new, but for NEN Beginner could that here interestingly his (be ultimately yourself one Beginner).

i'm into fix come some Strings verschlüsselt To Save circa tappt im dunkeln to nosy eyes To protect.
therefore have I these routine written.
she is not unknackbar, but the most go a Disassambler need circa hereon To come.

Erstmal The Speicherroutine:

One möglicher appeal would
CompileMarkSeparation
Speichern "Daten.dat", String1$,String2$,String3$,String4$,String5$,Zahl1%,Zahl2%,Zahl3%,Zahl4%,Zahl5%
>

where The 5 numbers the further Verschlüsselung serve and in the first Integer and secondly in the area between 1 and about 65400 lying should.
and the 5 Strings should a maximum length of 200 not beyond (something longer goes already but then Better get going entschlüsselbar) and with about 235 plus less a couple is integrally Schluss.

here The memory routine:
CompileMarkSeparation
Proc Speichern

    Parameters Dateiname$, Var1$, Var2$, Var3$, Var4$, Var5$, Var1%, Var2%, Var3%, Var4%, Var5%, Dateiname$
    Declare Anzahl%, Datei%, Zähler1%, Zähler2%, Dummy$, Dummy1$, Dummy%, Dummy1%
    Anzahl%=Len(Var1$)+Len(Var1$)+Len(Var1$)+Len(Var1$)+Len(Var1$)
    Randomize
    Declare Zufall#[Anzahl%+1], Datei#
    Struct Zufallnr = Nummer%
    Dim Zufall#[], Zufallnr
    Dim Datei#,1024
    Zufall#[0].Nummer%=@Rnd(500-(Anzahl%*2))+12+(Anzahl%*2)
    Zufall#[0].Nummer%=Zufall#[0].Nummer%*2
    Zähler1%=0

    Whileloop Anzahl%+1

        Inc Zähler1%
        Dummy1%=0

        Whilenot Dummy1%

            Dummy1%=1
            Dummy%=Rnd(500-(Anzahl%*2))+12+(Anzahl%*2)
            Dummy%=Dummy%*2
            Zähler2%=0

            Whileloop Anzahl%+1

                If Dummy%=Zufall#[Zähler2%].Nummer%

                    Dummy1%=0

                endif

                Inc Zähler2%

            Endwhile

        Endwhile

        Zufall#[Zähler1%].Nummer%=Dummy%

    Endwhile

    Whileloop 512

        Word Datei#,(&Loop-1)*2,Rnd(65533)

    Endwhile

    Word Datei#,0 = Len(Var1$)+Var1%,Len(Var2$)+Var2%,Len(Var3$)+Var3%,Len(Var4$)+Var4%,Len(Var5$)+Var5%

    Whileloop Anzahl%+1

        Word Datei#,(&Loop-1)*2+10,Zufall#[&Loop-1].Nummer%+&Loop

    Endwhile

    Dummy$=Var1$+Var2$+Var3$+Var4$+Var5$

    Whileloop Anzahl%+1

        Dummy1$=@Mid$(Dummy$,&loop-1,1)
        Dummy%=@Ord(Dummy1$)+&Loop
        Word Datei#,Zufall#[&loop-1].Nummer%,Dummy%

    Endwhile

    Assign #1, Dateiname$
    OpenRW #1
    BlockWrite #1, Datei#, 0, 1024
    CloseRW #1

<
s=s4 href='./../../function-references/XProfan/endproc/'>Endproc

These routine created a File of exakt one Kilobyte The mainly with Zufallswerten filled becomes between them The Nutzwerte durcheinandergewürfelt and changed cache are.

naturally must to the again auseinanderpflücken can:

One möglicher appeal:
CompileMarkSeparation
loading "Daten.dat",number1%, number2%, number3%, number4%, number5%

where these 5 numbers The even supra beschriebenen are

here The Laderoutine:
CompileMarkSeparation
___________ In Diesen variables are to Proc appeal The in the File
___________ gespeicherten Strings
Declare Var1$, Var2$, Var3$, Var4$, Var5$
_________________________________________________________________________________________

Proc loading

    Parameters Dateiname$, Var1%, Var2%, Var3%, Var4%, Var5%
    Declare File#, Dummy%, Varl1%, Varl2%, Varl3%, Varl4%, Varl5%, Dummy1$, Dummy2$, amount%
    Dim File#, 1024
    Assign #1, Dateiname$
    OpenRW #1
    Dummy% = @BlockRead(#1, File#, 0, 1024)
    CloseRW #1
    Varl1%=@Word(File#,0)-Var1%
    Varl2%=@Word(File#,2)-Var2%
    Varl3%=@Word(File#,4)-Var3%
    Varl4%=@Word(File#,6)-Var4%
    Varl5%=@Word(File#,8)-Var5%
    amount%=Varl1%+Varl2%+Varl3%+Varl4%+Varl5%
    Declare chance#[amount%]
    Struct Zufallnr = number%
    Dim chance#[], Zufallnr

    Whileloop amount%+1

        chance#[&Loop-1].number%=@Word(File#,(&Loop-1)*2+10)
        chance#[&Loop-1].number%=chance#[&Loop-1].number%-&Loop

    Endwhile

    Whileloop amount%

        Dummy1$=@chr $(@Word(File#,chance#[&Loop].number%)-&Loop-1)
        Dummy2$=Dummy2$+Dummy1$

    endwhile

    Whileloop Varl1%

        Dummy1$=@Mid$(Dummy2$,&Loop,1)
        Var1$=Var1$+Dummy1$

    Endwhile

    Whileloop Varl2%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%,1)
        Var2$=Var2$+Dummy1$

    Endwhile

    Whileloop Varl3%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%+Varl2%,1)
        Var3$=Var3$+Dummy1$

    Endwhile

    Whileloop Varl4%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%+Varl2%+Varl3%,1)
        Var4$=Var4$+Dummy1$

    Endwhile

    Whileloop Varl5%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%+Varl2%+Varl3%+Varl4%,1)
        Var5$=Var5$+Dummy1$

    Endwhile

Endproc


plenty joke so
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
04/23/06  
 




Jac
de
Lad
is still neat, probier I same from!

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
04/23/06  
 




Frank
Abbing
Beauty work .

in the Context my Verschlüsselungscode from whom XPIA Examples. it depends itself in first line but on User with erweiteren Programmkenntnissen, for speed important is together with a relatively secure Passwortschutz.
CompileMarkSeparation
Superschnelles XOR-Verschlüsselungs-Verfahren mit Passwortschutz.
Entliehen aus meiner ProSpeed.dll
 {$cliq}
Declare text$,passwort$,nurso$
text$="Zunächst einmal: Für Assembler benötigt man keine grosse Anzahl von Befehlen, mit 10 Befehlen "
text$=text$+"(insgesamt gibt es über 90) ist man schon gut bedient, alles andere ist unnütz, weil der "
text$=text$+"MASM32 Assembler High-Level-Syntax (.while / .endw / .if / .endif usw.) unterstützt."
text$=text$+"Und davon ist einem Profan-User schon das meiste bekannt."
passwort$="Ganz geheimes Passwort."
Window 0,0-%maxx,%maxy
Print "Originaltext:"
Print
Color 7,15
Print text$
Color 0,15
Print
Print
ASM-Block
Crypt(), eine XOR-Verschlüsselung mittels Passwort
Übernommen aus meiner ProSpeed.dll
Parameter:
1) para1 = Bereichsvariable oder String, in der die Daten gespeichert sind.
2) para2 = Anzahl zu verschlüsselnder Bytes
3) para3 = Pointer auf einen String (oder Bereich), in dem das Passwort gespeichert ist
4) para4 = Länge des Passworts
Beim zweiten Aufruf mit den gleichen Parametern wird der ursprung wieder hergestellt.

AsmStart Crypt

    Parameters addr(text$),Len(text$),addr(passwort$),Len(passwort$)
    mov   ecx,para2
    mov   edx,para1
    mov   ebx,para3
    mov   esi,para4
    mov   edi,0
    schleife:
    mov   al,[edx]
    xor   al,[ebx+edi]
    mov   [edx],al
    inc   edx
    inc   edi
    cmp   esi,edi
    jne   sprung
    mov   edi,0
    sprung:
    sub   ecx,1
    jne   schleife

AsmEnd

Print "Verschlüsselter Text:"
Print
Color 7,15
Print text$
Color 0,15
Print
Print
Jetzt kommt eine Besonderheit...
Wir rufen unseren ersten ASM-Block ein zweites mal auf !!! Ohne Prozedure !
xpia$ ist der Name unserer kompletten Assemblerlibrary.
Crypt ist hier der Name des Assemblerblocks, danach folgen etventuelle Parameter.
Dabei ist es sogar egal, ob der zweite Aufruf nach dem Assemblerblock erfolgt oder schon davor !
Wer das jetzt nicht verstanden hat, der sollte den ASM-Block Crypt lieber in eine Profan-Prozedure
packen, und stattdessen lieber die Prozedure aufrufen. Aber so wie hier geht es auch.
External(xpia$,"Crypt",addr(text$),Len(text$),addr(passwort$),Len(passwort$))
Print "Und der wieder hergestellte Text:"
Print
Color 7,15
Print text$
WaitInputclass=s4 href='./../../function-references/XProfan/end/'>End
 
04/23/06  
 




Hubert
Binnewies
@Frank

neither badly.....even goil would I say....
only I verwürfel the whole still in of/ one File...with which one cracker to 3 Problems set becomes.. in the first: How long are The strings.. where are The characters in the File and which reihenfolge....the first is no prob...the standing in the beginning the File, the stupid is only that here very The additional verschlüsselungszahlen add get...because first from it yields itself first How long the area the Positionszahlen is with which the positions the characters and its Order yields.....means not integrally so simply...

but time in the serious....it would Real sense make your routine to of my To settle and already becomes it Real jolly fürn cracker....what meinste...whether it The hairs faster nachwachsen as the the Rauft???....
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
04/23/06  
 




Hubert
Binnewies
i'm yet what invaded around the positions the characters To veil...there I will me tommorrow time dransetzen...and then becomes it yet what safer...

but time ne question......wieso is my Posting here moved been...whom have I still under beginner-questions / Programming reingesetzt....if I what Search look I always first darein....under whom codesnippets finds the still none....
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
04/23/06  
 



[quote:b53fcb60e0=Hubert Binnewies]but time ne question......wieso is my Posting here moved been...whom have I still under beginner-questions / Programming reingesetzt....if I what Search look I always first darein....under whom codesnippets finds the still none....[/quote:b53fcb60e0]Please in the Regulars table post, here would none to the response search. always beautiful at Topic stay. ( Regeln )
 
04/23/06  
 




Hubert
Binnewies
Hello together....

I have The routines yet what verfeinert, now are too yet The Positionszahlen verschlüsselt so the one Cracker in any case disassmblieren must so it The The 5 additional numbers sustain...otherwise would it not yet times the positions the characters herausbekommen..

here The memory routine:
CompileMarkSeparation
Proc Speichern

    Parameters Dateiname$, Var1$, Var2$, Var3$, Var4$, Var5$, Var1%, Var2%, Var3%, Var4%, Var5%, Dateiname$
    Declare Anzahl%, Datei%, Zähler1%, Zähler2%, Dummy$, Dummy1$, Dummy%, Dummy1%
    Anzahl%=Len(Var1$)+Len(Var1$)+Len(Var1$)+Len(Var1$)+Len(Var1$)
    Randomize
    Declare Zufall#[Anzahl%+1], Datei#
    Struct Zufallnr = Nummer%
    Dim Zufall#[], Zufallnr
    Dim Datei#,1024
    Zufall#[0].Nummer%=@Rnd(500-(Anzahl%*2))+12+(Anzahl%*2)
    Zufall#[0].Nummer%=Zufall#[0].Nummer%*2
    Zähler1%=0

    Whileloop Anzahl%+1

        Inc Zähler1%
        Dummy1%=0

        Whilenot Dummy1%

            Dummy1%=1
            Dummy%=Rnd(500-(Anzahl%*2))+12+(Anzahl%*2)
            Dummy%=Dummy%*2
            Zähler2%=0

            Whileloop Anzahl%+1

                If Dummy%=Zufall#[Zähler2%].Nummer%

                    Dummy1%=0

                endif

                Inc Zähler2%

            Endwhile

        Endwhile

        Zufall#[Zähler1%].Nummer%=Dummy%

    Endwhile

    Whileloop 512

        Word Datei#,(&Loop-1)*2,Rnd(65533)

    Endwhile

    Word Datei#,0 = Len(Var1$)+Var1%,Len(Var2$)+Var2%,Len(Var3$)+Var3%,Len(Var4$)+Var4%,Len(Var5$)+Var5%
    Dummy$=Var1$+Var2$+Var3$+Var4$+Var5$

    Whileloop Anzahl%+1

        Dummy1$=@Mid$(Dummy$,&loop-1,1)
        Dummy%=@Ord(Dummy1$)+&Loop
        Word Datei#,Zufall#[&loop-1].Nummer%,Dummy%

    Endwhile

    Zähler1%=1

    Whileloop Anzahl%+1

        If Zähler1%=1

            Zufall#[&Loop-1].Nummer%=Zufall#[&Loop-1].Nummer%+Var1%

        Endif

        If Zähler1%=2

            Zufall#[&Loop-1].Nummer%=Zufall#[&Loop-1].Nummer%+Var2%

        Endif

        If Zähler1%=3

            Zufall#[&Loop-1].Nummer%=Zufall#[&Loop-1].Nummer%+Var3%

        Endif

        If Zähler1%=4

            Zufall#[&Loop-1].Nummer%=Zufall#[&Loop-1].Nummer%+Var4%

        Endif

        If Zähler1%=5

            Zufall#[&Loop-1].Nummer%=Zufall#[&Loop-1].Nummer%+Var5%

        Endif

        Inc Zähler1%

        If Zähler1%=6

            Zähler1%=1

        Endif

    Endwhile

    Whileloop Anzahl%+1

        Word Datei#,(&Loop-1)*2+10,Zufall#[&Loop-1].Nummer%+&Loop

    Endwhile

    Assign #1, Dateiname$
    OpenRW #1
    BlockWrite #1, Datei#, 0, 1024
    Endproc


and here The Laderoutine:
CompileMarkSeparation
___________ In Diesen variables are to Proc appeal The in the File
___________ gespeicherten Strings
Declare Var1$, Var2$, Var3$, Var4$, Var5$
_________________________________________________________________________________________

Proc loading

    Parameters Dateiname$, Var1%, Var2%, Var3%, Var4%, Var5%
    Declare File#, Dummy%, Varl1%, Varl2%, Varl3%, Varl4%, Varl5%, Dummy1$, Dummy2$, amount%, counter%
    Dim File#, 1024
    Assign #1, Dateiname$
    OpenRW #1
    Dummy% = @BlockRead(#1, File#, 0, 1024)
    CloseRW #1
    Varl1%=@Word(File#,0)-Var1%
    Varl2%=@Word(File#,2)-Var2%
    Varl3%=@Word(File#,4)-Var3%
    Varl4%=@Word(File#,6)-Var4%
    Varl5%=@Word(File#,8)-Var5%
    amount%=Varl1%+Varl2%+Varl3%+Varl4%+Varl5%
    Declare chance#[amount%]
    Struct Zufallnr = number%
    Dim chance#[], Zufallnr

    Whileloop amount%+1

        chance#[&Loop-1].number%=@Word(File#,(&Loop-1)*2+10)
        chance#[&Loop-1].number%=chance#[&Loop-1].number%-&Loop

    Endwhile

    counter%=1

    Whileloop amount%+1

        IF counter%=1

            chance#[&Loop-1].number%=chance#[&Loop-1].number%-Var1%

        Endif

        IF counter%=2

            chance#[&Loop-1].number%=chance#[&Loop-1].number%-Var2%

        Endif

        IF counter%=3

            chance#[&Loop-1].number%=chance#[&Loop-1].number%-Var3%

        Endif

        IF counter%=4

            chance#[&Loop-1].number%=chance#[&Loop-1].number%-Var4%

        Endif

        IF counter%=5

            chance#[&Loop-1].number%=chance#[&Loop-1].number%-Var5%

        Endif

        Inc counter%

        If counter%=6

            counter%=1

        Endif

    Endwhile

    Whileloop amount%

        Dummy1$=@chr $(@Word(File#,chance#[&Loop].number%)-&Loop-1)
        Dummy2$=Dummy2$+Dummy1$

    endwhile

    Whileloop Varl1%

        Dummy1$=@Mid$(Dummy2$,&Loop,1)
        Var1$=Var1$+Dummy1$

    Endwhile

    Whileloop Varl2%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%,1)
        Var2$=Var2$+Dummy1$

    Endwhile

    Whileloop Varl3%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%+Varl2%,1)
        Var3$=Var3$+Dummy1$

    Endwhile

    Whileloop Varl4%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%+Varl2%+Varl3%,1)
        Var4$=Var4$+Dummy1$

    Endwhile

    Whileloop Varl5%

        Dummy1$=@Mid$(Dummy2$,&Loop+Varl1%+Varl2%+Varl3%+Varl4%,1)
        Var5$=Var5$+Dummy1$

    Endwhile

Endproc


plenty joke so
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
04/24/06  
 




Hubert
Binnewies
ACHTUNG!!!!

at that revise the routine for a new Proggi is me noticed the with this routine, if one tappt im dunkeln knows, the Key with a ploy on simplest Nature and point zurückgerechnet go can.

I work straight at a routine with the not More possible is.

means : NOT VERWENDEN !

on IF:
it would already if You this Posting delete could.
If I the new routine ready have eröffne I then a new Posting.

thanks

Hubert
 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
06/27/06  
 




Michael
Wodrich
Hello Hubert,
You can your geposteten Posts as an afterthought Edit. on the end standing (under right) edit.

If you whom Posting changed have, then points You simply with a new Posting hereon there, the there now something changed watts.
The Changes get otherwise Yes none with.

Best wishes
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
06/27/06  
 




Hubert
Binnewies
Hello together...

After 2 weeks gutem durchbraten in the sun of Friedewald (Westerwald) and about one Gigabyte on photos, be I completely Relaxed again here.
naturally have I directly again on The routine to that verschlüsseltem Save staid and wished here The finished routine post.

but first something to the routine:
1.) tappt im dunkeln bid Space for 101 Strings with of/ one length of up to 50 characters.
2.) tappt im dunkeln bid Space for 101 Integerwerte.
3.) there 2 Key together verwurstet go, arise one gigant langer Key the, under the prerequisite the both Key different long are, no replays shows.
Womit because of the astronomisch high Opportunities one Brute-Force forward line useful unmöglich becomes.
likewise becomes one Rückrechnen the Key useful unmöglich.

around the whole yet abzurunden be erwähnt the one on none drop The Key in the program unterbringen ought to, there one tappt im dunkeln otherwise through Disassamblieren sustain.

plenty joke with the routine, I hope on many comments.

Hubert
CompileMarkSeparation
_________________________________________________________________________________________
Globale Variablen, hier kommen die zu Speichernden Werte hinein
Declare Speicherdaten#[100], Schlüssel$,Schlüssel2$
Struct Nutzdaten = Stringvar$(50), Intvar%
Dim Speicherdaten#[], Nutzdaten
_________________________________________________________________________________________
Beim Aufruf wird noch ein Dateiname (gegebenenfalls mit Pfad) benötigt und ein
beliebig langer Schlüssel (max 235 Zeichen) als String der alle mit der Tastatur
erreichbare Zeichen enthalten darf.
Beispielaufruf :

Whileloop 0,100

    Speicherdaten#[&loop].Stringvar$="testdatensatz nummer:"+@Str$(&loop)+" Integerwert:"
    Speicherdaten#[&loop].Intvar%=&loop

endwhile

Schlüssel$="AABBCCDDEEFFGG112233445566"
Schlüssel2$="abcdefghijk"
Speichern $Progdir+"INI.DAT",Schlüssel$,Schlüssel2$
cls
print "fertig"
waitinput
_________________________________________________________________________________________
Am Programmende muss noch dies, da sonst der Speicher nicht freigegeben wird.
Dispose Speicherdaten#[]
_________________________________________________________________________________________
Die Speicher Routine

Proc Speichern

    Parameters Datei$, Schlüssel$, Schlüssel2$
    Declare Speicherstring$, Speicherschlüssel$, Speicherschlüssel1$, Speicherschlüssel2$, Speicherstringverschlüsselt$, Speicherstringlänge%
    Declare Zähler1%, Zähler2%, Zähler3%, Dummy1%, Dummy2%, Dummy3%, Datei#, Speicherstringlängecod%
    Dim Datei#,30720
    Randomize

    Whileloop 0,100 <---Bei weniger Datensätze, diese Zahl anpassen

        Speicherstring$=Speicherstring$+chr$(len(Speicherdaten#[&loop].Stringvar$))+Speicherdaten#[&loop].Stringvar$+chr$(len(str$(Speicherdaten#[&loop].Intvar%)))+str$(Speicherdaten#[&loop].Intvar%)

    EndWhile

    Speicherstringlänge%=len(Speicherstring$)+1
    Speicherstringlängecod%=Speicherstringlänge%

    Whileloop len(Schlüssel$)

        Speicherstringlängecod%=Speicherstringlängecod%+ord(mid$(Schlüssel$,&Loop,1))

    Endwhile

    Declare Zufall%[Speicherstringlänge%]

    Whilenot Speicherstringlänge%<len(Speicherschlüssel1$)

        Speicherschlüssel1$=Speicherschlüssel1$+Schlüssel$

    Endwhile

    Whilenot Speicherstringlänge%<len(Speicherschlüssel2$)

        Speicherschlüssel2$=Speicherschlüssel2$+Schlüssel2$

    Endwhile

    WhileLoop 0,Speicherstringlänge%+1

        Speicherschlüssel$ = Speicherschlüssel$ + @Chr$(@XOr(@Ord(@Mid$(Speicherschlüssel1$,&Loop,1)), @Ord(@Mid$(Speicherschlüssel2$,&Loop,1))))

    EndWhile

    WhileLoop 0,Speicherstringlänge%+1

        Speicherstringverschlüsselt$ = Speicherstringverschlüsselt$ + @Chr$(@XOr(@Ord(@Mid$(Speicherstring$,&Loop,1)), @Ord(@Mid$(Speicherschlüssel$,&Loop+1,1))))

    EndWhile

    Clear Datei#

    Whileloop Speicherstringlänge%

        Dummy2%=&loop
        Dummy3%=0

        Whilenot Dummy3%

            Dummy3%=1
            Dummy1%=(Rnd(30710-(Speicherstringlänge%*2)))+10+(Speicherstringlänge%*2)

            If @byte(Datei#,Dummy1%)=0

                Byte Datei#,Dummy1%=1
                Zufall%[Dummy2%]=Dummy1%

            else

                Dummy3%=0

            Endif

        Endwhile

    Endwhile

    Whileloop 0,15359

        Word Datei#,(&Loop-1)*2,Rnd(65533)

    Endwhile

    Whileloop 0,Speicherstringlänge%-1

        Byte Datei#,Zufall%[&Loop]=Ord(mid$(Speicherstringverschlüsselt$,&Loop+1,1))

    Endwhile

    Word Datei#,0=Speicherstringlängecod%

    Whileloop Speicherstringlänge%

        Word Datei#,&Loop*2=@XOr(Zufall%[&Loop-1], @Ord(@Mid$(Speicherschlüssel$,&Loop,1)))

    Endwhile

    Assign #1, Datei$
    OpenRW #1
    BlockWrite #1, Datei#, 0, 30720
    CloseRW #1

Endproc


CompileMarkSeparation
_________________________________________________________________________________________
Globale variables, here come The gespeicherten values into
Declare Speicherdaten#[100], Key$, Key2$, success%
Struct Nutzdaten = Stringvar$(50), Intvar%
Dim Speicherdaten#[], Nutzdaten
_________________________________________________________________________________________
at that appeal becomes yet the Dateiname (possibly with way) needed and the
Key as String.
Return Value: 0=ungültige File (caution, it go only elementare items examined,
sinvoll would one Prüfwert)
1=gültige File
Beispielaufruf :
Schlüssel$="AABBCCDDEEFFGG112233445566"
Schlüssel2$="abcdefghijk"
Erfolg%=loading ($Progdir+"INI.DAT",Key$,Key2$)
Testausgabe
cls

whileloop 0,100

    print Speicherdaten#[&loop].Stringvar$;
    print " ";
    print Speicherdaten#[&loop].Intvar%
    waitinput

endwhile

_________________________________________________________________________________________
on the End of program must yet this, there otherwise the memory not released is.
Dispose Speicherdaten#[]
_________________________________________________________________________________________
The load routine

Proc loading

    Parameters File$, Key$, Key2$
    Declare File#, counter1%, counter2%, counter3%, Dummy1%, Dummy2%, Dummy3%, Speicherstringlängecod%
    Declare Speicherstring$, Speicherschlüssel$, Speicherschlüssel1$, Speicherschlüssel2$, Speicherstringverschlüsselt$, Speicherstringlänge%
    Declare Falschedatei%
    Dim File#,30720
    Falschedatei%=1
    Assign #1, File$
    OpenRW #1
    Dummy1% = @BlockRead(#1, File#, 0, 30720)
    CloseRW #1

    If Dummy1%<>30720

        Falschedatei%=0

    Endif

    Speicherstringlängecod%=@Word(File#,0)

    Whileloop len(Key$)

        Speicherstringlängecod%=Speicherstringlängecod%-ord(mid$(Key$,&Loop,1))

    Endwhile

    Speicherstringlänge%=Speicherstringlängecod%

    If Speicherstringlänge%>5200

        Falschedatei%=0

    Endif

    If Falschedatei%=0

        Return 0

    Endif

    Declare chance%[Speicherstringlänge%]

    Whilenot Speicherstringlänge%<len(Speicherschlüssel1$)

        Speicherschlüssel1$=Speicherschlüssel1$+Key$

    Endwhile

    Whilenot Speicherstringlänge%<len(Speicherschlüssel2$)

        Speicherschlüssel2$=Speicherschlüssel2$+Key2$

    Endwhile

    WhileLoop 0,Speicherstringlänge%+1

        Speicherschlüssel$ = Speicherschlüssel$ + @Chr$(@XOr(@Ord(@Mid$(Speicherschlüssel1$,&Loop,1)), @Ord(@Mid$(Speicherschlüssel2$,&Loop,1))))

    EndWhile

    Whileloop Speicherstringlänge%

        chance%[&loop-1]=@XOr(@Word(File#,&loop*2), @Ord(@Mid$(Speicherschlüssel$,&Loop,1)))

    Endwhile

    Whileloop 1,Speicherstringlänge%

        Speicherstring$=Speicherstring$+chr $(@XOr(@byte(File#,chance%[&loop-1]), @Ord(@Mid$(Speicherschlüssel$,&Loop,1))))

    Endwhile

    counter1%=2

    Whileloop 0,100 <--- with less Datensätze, these number adjust

        Dummy1%=@Ord(@Mid$(Speicherstring$,counter1%,1))
        Speicherdaten#[&loop].Stringvar$=@Mid$(Speicherstring$,counter1%+1,Dummy1%)
        Dummy2%=@Ord(@Mid$(Speicherstring$,counter1%+1+Dummy1%,1))
        Speicherdaten#[&loop].Intvar%=Val(@Mid$(Speicherstring$,counter1%+2+Dummy1%,Dummy2%))
        counter1%=counter1%+2+Dummy1%+Dummy2%

    EndWhile

    Return 1

Endproc

 
WinXP Prof, XProfan 9.1 Newbie

Ein kluger Kopf sagte mal:
"Nach dem derzeitigen Stand der Technik ist es unmöglich Programme zu schreiben, die fehlerfrei laufen!"
07/24/06  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

7.614 Views

Untitledvor 0 min.
Gast.0815 vor 26 Tagen
PETER195607/18/18
Georg Teles01/09/16
Michael Borowiak11/15/14
More...

Themeninformationen



Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie