| |
|
|
Michael Wodrich | qui aus einigen Mail-Programmen et NewsReadern bekannte ROT13-Verschlüsselung. pas comme gute Verschlüsselung gedacht, mais um Textes vorübergehend trop cacher. Z.B. si sur Fußball-Ergebnisse geplaudert wird en Ausstrahlung seulement am soir erfolgt. ou bien quelqu'un hat une TV-Serie déjà dans Amerika gesehen et veux par-dessus diskutieren. avec ROT13 invisible ist es chaque freigestellt, sich selbst den Amusement trop la perte et den Text trop lesen ou bien lieber trop attendre. KompilierenMarqueSéparationXProfan 9 (lokaler Bereich, Operatoren)
Autor: Michael Wodrich
Def InRange(3) If((@&(1) >= @&(2)) and (@&(1) <= @&(3)),1,0)
Def InRangeEx(3) If((@&(1) > @&(2)) and (@&(1) < @&(3)),1,0)
Die aus Mail-Programmen bekannte ROT13-Verschlüsselung.
Zweimalige Anwendung entschlüsselt den Text wieder.
Proc Rot13$
Parameters Text$
Declare Erg$,Buf#,Anz%,c%
Let Anz% = Len(Text$) Länge wird mehrmals benötigt
Dim Buf#,Anz% + 1
String Buf#,0 = Text$
WhileLoop 0,Anz%
Let c% = Byte(Buf#,&loop)
If InRange(c%,65,77) or InRange(c%,97,109) A..M, a..m
Byte Buf#,&loop = c% + 13
ElseIf InRange(c%,78,90) or InRange(c%,110,122) N..Z, n..z
Byte Buf#,&loop = c% - 13
EndIf
EndWhile
Let Erg$ = String$(Buf#,0)
Dispose Buf#
Return Erg$
EndProc
cls
print ""
print Rot13$("Qvrf vfg rva Grfg.")
print ""
print Rot13$("Qvr nhf Znvy-Cebtenzzra orxnaagr EBG13-Irefpuyüffryhat.")
print Rot13$("Mjrvznyvtr Najraqhat ragfpuyüffryg qra Grkg jvrqre.")
print ""
print Rot13$("Ahe mhz rvasnpura ireoretra. Nyf Irefpuyüffryhat hatrrvtarg!")
WaitKey
end
belle Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 19.09.2005 ▲ |
|
|
|
|
Michael W. | cela allez naturellement aussi quelque chose kompakter...
là habe je qui logischen And et Or verwendet. And: && Or: ||
Läßt sich alors aussi à qui 11il Version anpassen.
// Autor: Michael Wodrich
Proc rouge13
Paramètres string s
Déclarer string res, int c
WhileLoop 1,Len(s)
// c = ord(mid$(s,&loop,1))
c = ord(substr$(s,&loop))
res = res + Chr$(si(((c > 64) && (c < 78)) || ((c > 96) && (c < 110)), c + 13, si(((c > 77) && (c < 91)) || ((c > 109) && (c < 123)), c - 13, c )))
Endwhile
Retour res
ENDPROC
cls
Déclarer x$
x$ = "Test alphabet,123"
Imprimer " Original:",x$
x$ = rouge13(x$)
Imprimer "encode rouge13:",x$
x$ = rouge13(x$)
Imprimer "decode rouge13:",x$
imprimer »
imprimer rouge13("Qvrf vfg rva Grfg.")
imprimer »
imprimer rouge13("Qvr nhf Znvy-Cebtenzzra orxnaagr EBG13-Irefpuyüffryhat.")
imprimer rouge13("Mjrvznyvtr Najraqhat ragfpuyüffryg qra Grkg jvrqre.")
imprimer »
imprimer rouge13("Ahe mhz rvasnpura ireoretra. Nyf Irefpuyüffryhat hatrrvtarg!")
WaitKey
end
|
|
|
| |
|
|