to ~ SaM ~
Random никогда не вернет дробного значения, если вызывается с параметром
to TitiS
Если никаких серьезных требований к шифрованию не предъявляется, то можно написать простые функции с применением
xor и
not. Вот пример
Код:
// Кодирование строки
function Decode(text, key: string): string;
var
code: Longint;
i: integer;
begin
if Length(text) = 0 then Exit;
if Length(key) = 0 then
begin
Result := text;
Exit;
end;
code := 0;
for i := 1 to Length(key) do
Inc(code, Ord(key));
for i := 1 to Length(text) do
Result := Result + Chr(not((Ord(text) + i) xor code));
end;
// Декодирование строки
function Encode(text, key: string): string;
var
code: Longint;
i: integer;
begin
if Length(text) = 0 then Exit;
if Length(key) = 0 then
begin
Result := text;
Exit;
end;
code := 0;
for i := 1 to Length(key) do
Inc(code, Ord(key[i]));
for i := 1 to Length(text) do
Result := Result + Chr((not(Ord(text[i]) xor code)) - i);
end;
Принцип алгоритма основан на том, что операции
xor и
not обратимые. Если нужно что-то более серьезное, используй встроенные в Винду криптопровайдеры.