const list:
array [AnsiChar]
of Byte = (
{ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xa xb xc xd xe xf}
{0x} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{1x} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{2x} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{3x} 36, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 0, 0, 0, 0, 0,
{4x} 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
{5x} 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, 0, 0,
{6x} 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
{7x} 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0,
{8x} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{9x} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{ax} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{bx} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{cx} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{dx} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{ex} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
{fx} 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
// List2 hab ich jetzt nicht übersetzt, aber mit 'ner
// ASCII-Tabelle kannst das ganz einfach selber machen.
// Im Grunde ist das Ganze nur andersrum zu deinem Array:
// - bei dir wurde eine fortlaufende Zahl je mit einem Zeichen verknüpft
// - hier ist den entsprechenden Zeichen die passende fortlaufende Zahl zugeordnet
function crypt1(s:
string):
string;
stdcall;
var wert: byte;
i: integer;
begin
s := s + '
A';
RandSeed := 4546464;
Result := '
';
for i := 0
to Length(s) - 1
do
begin
wert := list[s[i + 1]];
if wert = 0
then HierEineFehlermeldungAusgeben;
Result := Result + Format('
%d%d', [wert, Random(wert)]);
end;
for i := 0
to Length(s) - 1
do
begin
wert := list2[s[i + 1]];
if wert = 0
then HierEineFehlermeldungAusgeben;
Result := Result + Format('
%d%d', [wert, Random(wert)]);
end;
end;