Español
Fuente/ Codesnippets

Guardar Verschlüsseltes

 

Hubert
Binnewies
¡Hola zusammen...

Yo blanco...euch Profano Profis erzähle Yo nix neues, aber para nen Principiante podría que aquí interessant ser (bin schliesslich selber una Principiante).

Yo bin en el Verlegenheit gekommen algunos Cuerdas verschlüsselt a speichern en ellos antes neugierigen Augen a schützen.
Darum Yo esta Rutina geschrieben.
Sie es no unknackbar, aber el meisten voluntad una Disassambler brauchen en darauf a kommen.

Erstmal el Speicherroutine:

Ein möglicher Aufruf wäre
KompilierenMarcaSeparación
Speichern "Daten.dat", String1$,String2$,String3$,String4$,String5$,Zahl1%,Zahl2%,Zahl3%,Zahl4%,Zahl5%
>

Wobei el 5 Pagar el más Verschlüsselung dienen y erstens Integer y zweitens en zwischen 1 y etwa 65400 mentira debería.
Und el 5 Cuerdas debería una máximo Longitud de 200 no überschreiten (algo länger va ya aber entonces Será mejor que te va entschlüsselbar) y en etwa 235 plus minus unos pocos es bastante Schluss.

Hier el Speicher Rutina:
KompilierenMarcaSeparación
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

Diese Rutina producido una Expediente de exakt una Kilobyte el Hauptsächlich con Zufallswerten gefüllt se zwischen denen el Nutzwerte durcheinandergewürfelt y verändert versteckt son.

Natürlich muss al auch otra vez auseinanderpflücken puede:

Ein möglicher Aufruf:
KompilierenMarcaSeparación
Laden "Daten.dat",Nummer1%, Nummer2%, Nummer3%, Nummer4%, Nummer5%

Wobei esta 5 Nummern el eben oben beschriebenen son

Hier el Laderoutine:
KompilierenMarcaSeparación
___________ In Diesen Variables son después de Proc Aufruf el en el Expediente
___________ gespeicherten Cuerdas
Declarar Var1$, Var2$, Var3$, Var4$, Var5$
_________________________________________________________________________________________

Proc Laden

    Parámetros Dateiname$, Var1%, Var2%, Var3%, Var4%, Var5%
    Declarar Expediente#, Dummy%, Varl1%, Varl2%, Varl3%, Varl4%, Varl5%, Dummy1$, Dummy2$, Anzahl%
    Dim Expediente#, 1024
    Asignar #1, Dateiname$
    OpenRW #1
    Dummy% = @BlockRead(#1, Expediente#, 0, 1024)
    CloseRW #1
    Varl1%=@Word(Expediente#,0)-Var1%
    Varl2%=@Word(Expediente#,2)-Var2%
    Varl3%=@Word(Expediente#,4)-Var3%
    Varl4%=@Word(Expediente#,6)-Var4%
    Varl5%=@Word(Expediente#,8)-Var5%
    Anzahl%=Varl1%+Varl2%+Varl3%+Varl4%+Varl5%
    Declarar Zufall#[Anzahl%]
    Struct Zufallnr = Nummer%
    Dim Zufall#[], Zufallnr

    Whileloop Anzahl%+1

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

    Endwhile

    Whileloop Anzahl%

        Dummy1$=@chr$(@Word(Expediente#,Zufall#[&Loop].Nummer%)-&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


Viel Spass así
 
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!"
23.04.2006  
 




Jac
de
Lad
Ist doch niedlich, probier Yo igual de!

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
23.04.2006  
 




Frank
Abbing
Schöne Arbeit .

In el Zusammenhang media Verschlüsselungscode de el XPIA Beispielen. Er richtet se en erster Linie aber a User con erweiteren Programmkenntnissen, para el Geschwindigkeit wichtig es zusammen con un relativ sicheren Passwortschutz.
KompilierenMarcaSeparación
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
 
23.04.2006  
 




Hubert
Binnewies
@Franco

Auch no schlecht.....incluso goil sería Yo sagen....
Nur Yo verwürfel todos aún en uno datei...womit una cracker antes 3 probleme gestellt se.. erstens: como lang son el strings.. wo son el zeichen en el datei y welcher reihenfolge....el erste es kein prob...el es al anfang el datei, el blöde es sólo que aquí genau el zusätzlichen verschlüsselungszahlen addiert fueron...porque sólo lo ergibt se sólo como lang el Feld el Positionszahlen es womit el Positionen el Signo y deren Reihenfolge ergibt.....also no bastante así simplemente...

Aber veces en el ernst....lo sería echt Sinn hacer deine Rutina antes meiner a conjunto y ya se lo echt lustig fürn cracker....qué meinste...si ihm el Haare más rápido nachwachsen como el el 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!"
23.04.2006  
 




Hubert
Binnewies
Mir es todavía qué eingefallen a Positionen el Signo a verschleiern...como voluntad Yo mich morgen veces dransetzen...y luego lo todavía qué sicherer...

Aber veces ne frage......wieso es mein Contribución hier movido worden...el Yo doch bajo einsteigerfragen / Programación reingesetzt....si yo qué búsqueda schaue Yo siempre zuerst darein....bajo el codesnippets findet el doch keiner....
 
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!"
23.04.2006  
 



[quote:b53fcb60e0=Hubert Binnewies]Aber veces ne frage......wieso es mein Contribución hier movido worden...el Yo doch bajo einsteigerfragen / Programación reingesetzt....si yo qué búsqueda schaue Yo siempre zuerst darein....bajo el codesnippets findet el doch keiner....[/quote:b53fcb60e0]Bitte en el Stammtisch puesto, hier sería keiner después de el Antwort suchen. Immer schön beim Thema bleiben. ( Regeln )
 
23.04.2006  
 




Hubert
Binnewies
¡Hola zusammen....

Yo habe el Routinen todavía qué verfeinert, nun son auch todavía el Positionszahlen verschlüsselt así el una Cracker en cada fall disassmblieren muss así él el el 5 zusätzlichen Pagar erhält...sonst sería él todavía no veces el Positionen el Signo herausbekommen..

Hier el Speicher Rutina:
KompilierenMarcaSeparación
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


Und hier el Laderoutine:
KompilierenMarcaSeparación
___________ In Diesen Variables son después de Proc Aufruf el en el Expediente
___________ gespeicherten Cuerdas
Declarar Var1$, Var2$, Var3$, Var4$, Var5$
_________________________________________________________________________________________

Proc Laden

    Parámetros Dateiname$, Var1%, Var2%, Var3%, Var4%, Var5%
    Declarar Expediente#, Dummy%, Varl1%, Varl2%, Varl3%, Varl4%, Varl5%, Dummy1$, Dummy2$, Anzahl%, Zähler%
    Dim Expediente#, 1024
    Asignar #1, Dateiname$
    OpenRW #1
    Dummy% = @BlockRead(#1, Expediente#, 0, 1024)
    CloseRW #1
    Varl1%=@Word(Expediente#,0)-Var1%
    Varl2%=@Word(Expediente#,2)-Var2%
    Varl3%=@Word(Expediente#,4)-Var3%
    Varl4%=@Word(Expediente#,6)-Var4%
    Varl5%=@Word(Expediente#,8)-Var5%
    Anzahl%=Varl1%+Varl2%+Varl3%+Varl4%+Varl5%
    Declarar Zufall#[Anzahl%]
    Struct Zufallnr = Nummer%
    Dim Zufall#[], Zufallnr

    Whileloop Anzahl%+1

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

    Endwhile

    Zähler%=1

    Whileloop Anzahl%+1

        IF Zähler%=1

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

        Endif

        IF Zähler%=2

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

        Endif

        IF Zähler%=3

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

        Endif

        IF Zähler%=4

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

        Endif

        IF Zähler%=5

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

        Endif

        Inc Zähler%

        If Zähler%=6

            Zähler%=1

        Endif

    Endwhile

    Whileloop Anzahl%

        Dummy1$=@chr$(@Word(Expediente#,Zufall#[&Loop].Nummer%)-&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


Viel Spass así
 
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!"
24.04.2006  
 




Hubert
Binnewies
ACHTUNG!!!!

Beim überarbeiten el Rutina para una neues Proggi me está aufgefallen en el dieser Rutina, si uno ellos sabe, el Schlüssel con un Trick en einfachste Art y Weise zurückgerechnet voluntad kann.

Yo arbeite gerade a uno Rutina en el no mehr posible es.

Also : NICHT VERWENDEN !

An IF:
Lo wäre ya si du esta Contribución löschen könntest.
Wenn Yo el neue Rutina fertig habe eröffne Yo entonces una neuen Contribución.

Gracias

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!"
27.06.2006  
 




Michael
Wodrich
¡Hola Hubert,
Usted puede Su geposteten Beiträge nachträglich bearbeiten. Am Ende es (unten rechts) Editar.

Si usted el Contribución geändert hast, entonces weist Usted simplemente con un neuen Posting darauf hin, el como ahora algo geändert wurde.
El Los cambios bekommt sonst sí keiner con.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
27.06.2006  
 




Hubert
Binnewies
¡Hola zusammen...

Nach 2 Wochen gutem durchbraten en el Sonne de Friedewald (Westerwald) y etwa una Gigabyte a Fotos, bin Yo vollkommen Relaxed otra vez hier.
Natürlich Yo mich direkt otra vez a el Rutina para verschlüsseltem Guardar gesetzt y quería hier el fertige Rutina puesto.

Aber primero algo a el Rutina:
1.) Sie bietet Platz para 101 Cuerdas con uno Longitud de a a 50 Signo.
2.) Sie bietet Platz para 101 Integerwerte.
3.) como 2 Schlüssel miteinander verwurstet voluntad, entsteht una riesig langer Schlüssel el, bajo el Voraussetzung el beide Schlüssel unterschiedlich lang son, no Wiederholungen zeigt.
Womit aufgrund el astronomisch hohen Möglichkeiten una Brute-Force Angriff praktisch unmöglich se.
También se una Rückrechnen el Schlüssel praktisch unmöglich.

Um todos todavía abzurunden sei erwähnt el uno en no Fall el Schlüssel en el Programa unterbringen debería, como uno ellos sonst por Disassamblieren erhält.

Viel Spass con el Rutina, Yo hoffe en viele Kommentare.

Hubert
KompilierenMarcaSeparación
_________________________________________________________________________________________
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


KompilierenMarcaSeparación
_________________________________________________________________________________________
Globale Variables, hier kommen el gespeicherten Werte hinein
Declarar Speicherdaten#[100], Schlüssel$, Schlüssel2$, Erfolg%
Struct Nutzdaten = Stringvar$(50), Intvar%
Dim Speicherdaten#[], Nutzdaten
_________________________________________________________________________________________
Beim Aufruf se todavía el Dateiname (quizás con Pfad) benötigt y el
Schlüssel como String.
Rückgabewert: 0=ungültige Expediente (Vorsicht, lo voluntad sólo elementare Dinge geprüft,
sinvoll wäre una Prüfwert)
1=gültige Expediente
Beispielaufruf :
Schlüssel$="AABBCCDDEEFFGG112233445566"
Schlüssel2$="abcdefghijk"
Erfolg%=Laden ($Progdir+"INI.DAT",Schlüssel$,Schlüssel2$)
Testausgabe
cls

whileloop 0,100

    imprimir Speicherdaten#[&bucle].Stringvar$;
    imprimir " ";
    imprimir Speicherdaten#[&bucle].Intvar%
    waitinput

endwhile

_________________________________________________________________________________________
Am Programmende muss todavía dies, como sonst el Speicher no freigegeben es.
Disponer Speicherdaten#[]
_________________________________________________________________________________________
El Lade Rutina

Proc Laden

    Parámetros Expediente$, Schlüssel$, Schlüssel2$
    Declarar Expediente#, Zähler1%, Zähler2%, Zähler3%, Dummy1%, Dummy2%, Dummy3%, Speicherstringlängecod%
    Declarar Speicherstring$, Speicherschlüssel$, Speicherschlüssel1$, Speicherschlüssel2$, Speicherstringverschlüsselt$, Speicherstringlänge%
    Declarar Falschedatei%
    Dim Expediente#,30720
    Falschedatei%=1
    Asignar #1, Expediente$
    OpenRW #1
    Dummy1% = @BlockRead(#1, Expediente#, 0, 30720)
    CloseRW #1

    If Dummy1%<>30720

        Falschedatei%=0

    Endif

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

    Whileloop len(Schlüssel$)

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

    Endwhile

    Speicherstringlänge%=Speicherstringlängecod%

    If Speicherstringlänge%>5200

        Falschedatei%=0

    Endif

    If Falschedatei%=0

        Volver 0

    Endif

    Declarar Zufall%[Speicherstringlänge%]

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

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

    Endwhile

    Sinestar encargado 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 Speicherstringlänge%

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

    Endwhile

    Whileloop 1,Speicherstringlänge%

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

    Endwhile

    Zähler1%=2

    Whileloop 0,100 <--- En weniger Datensätze, esta Zahl adaptar

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

    EndWhile

    Volver 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!"
24.07.2006  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

7.972 Views

Untitledvor 0 min.
Gast.081526.08.2024
PETER195618.07.2018
Georg Teles09.01.2016
Michael Borowiak15.11.2014
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie