' SND-Algorhitmus zum Ver- und Entschlüßeln von Computerdaten ' Simple Number Based Decryption ' (C) Mittwoch 07.05.2003 - Dennis Schulmeister ' Alle Rechte vorbehalten Randomize Proc SND_Crypt Parameters PlainString$, Password$ Declare i%, n%, CryptedString$, Ord$, RND%, Klammer$, WarOffen% Declare PWDOrd%, j%, nPWD% Password$ = @Trim$(Password$) Case @EQU$(Password$,""):Return PlainString$ n% = @Len(PlainString$) nPWD% = @Len(Password$) WhileNot @Equ(i%, n%) inc i% inc j% PWDOrd% = @Ord(@Mid$(Password$, j%, 1)) Ord$ = @Str$(@Int(@Add(@Ord(@Mid$(PlainString$,i%,1)),PWDOrd%))) Ord$ = @Add$(@Mkstr$("0",@Sub(3,@Len(Ord$))),Ord$) RND% = @Int(@RND(i%)) If @Not(@Mod(RND%,2)) If WarOffen% WarOffen% = 0 Klammer$ = ")" Else WarOffen% = 1 Klammer$ = "(" EndIf Else Klammer$ = "" EndIf CryptedString$ = @Add$(@Add$(CryptedString$,Klammer$), Ord$) Case @Not(@Mod(i%,nPWD%)):j% = 0 Wend Case (WarOffen%): CryptedString$ = @Add$(CryptedString$,")") Return CryptedString$ EndProc Proc SND_Decrypt Parameters CryptedString$, Password$ Declare PlainString$, i%, j%, n%, nPWD%, Ord$, PWDOrd% Password$ = @Trim$(Password$) Case @Equ$(Password$,""): Return CryptedString$ CryptedString$ = @Translate$(CryptedString$,"(","") CryptedString$ = @Translate$(CryptedString$,")","") n% = @Div(@Len(CryptedString$),3) nPWD% = @Len(Password$) j% = 1 WhileNot @Equ(i%, n%) PWDOrd% = @Int(@Ord(@Mid$(Password$, j%, 1))) Ord$ = @Mid$(CryptedString$,@Add(@Mul(i%,3),1),3) Ord$ = @Chr$(@Int(@Sub(@Val(Ord$),PWDOrd%))) PlainString$ = PlainString$ + Ord$ inc i% inc j% Case @Not(@Mod(i%,nPWD%)):j% = 1 Wend Return PlainString$ EndProc