![]() |
|
|
#1
|
||||
|
||||
|
Нужно написать вот такую программку:
Шифрование текста по ограниченному словарю (от пяти до десяти знаков). Делфи вижу впервые, помогите пожалуйста!!! Заранее спасибо ![]() |
|
#2
|
||||
|
||||
|
Что значит "ограниченный словарь"?
Насколько сильная защита тебе нужна? |
|
#3
|
||||
|
||||
|
Возможно автор имел ввиду ограничение длины пароля до нужного количества знаков.
|
|
#4
|
||||
|
||||
|
Если так, то вот пример:
Ограничение пароля до 8ми символов. Код:
procedure TForm1.Button1Click(Sender: TObject); var pas,rez:string; i,n:integer; begin rez:='je5gDfwL'; //Задаем начальное значение,длина должна быть равна n (см.ниже) pas:=edit1.Text; //получаем пароль n:=8; // ограничиваем длину "рабочей" части пароля if length(pas)<n then n:=length(pas); for i:=1 to n do begin rez[i]:=pas[i]; //записываем пароль в результат end; edit2.Text:=rez; //не обязательно, просто для проверки результата end; lmikle: Сделал красиво, а где теги кода??? А дальше нужно решить какой будет сам шифр. Последний раз редактировалось Konrad, 20.03.2009 в 20:24. |
|
#5
|
|||
|
|||
|
Ну, для простоты сделай шифрование XOR'ом.
Код:
function Encode(AText, APass : String) : String;
var
I : Integer;
ALongPass : String;
begin
If (Length(APass) < 5) Or (Length(APass) > 8) Then
Raise Exception.Create('Пароль короче 5 или длиннее 8 символов.');
Result := AText;
// Для простоты делаем строку пароля кодирования
// такой же длинны, что и данные. Просто копируя пароль.
ALongPass := '';
While Length(ALongPass) < Length(AText) Do
ALongPass := ALongPass + APass;
// А теперь шифруем XOR'ом
For I := 1 To Length(AText) Do
Result[i] := Chr(Ord(Result[i]) XOR Ord(ALongPass[i]));
end; |
|
#6
|
||||
|
||||
|
Я вот тоже сразу подумал о ХОR, но тут лучше знать какой уровень надежности нужен, какой тип данных будет шифроваться, от кого защита и т.д. ( хотя бы приблизительно). Это очень важно для выбора типа шифра.
|
|
#7
|
|||
|
|||
|
я думаю, что это либо лаба, либо курсач. Так что особой надежности тут не надо
![]() |
|
#8
|
||||
|
||||
|
Цитата:
А как расшифровать то потом такой способ ??? |
|
#9
|
|||
|
|||
|
Точно так же. Тем же XOR'ом тем же паролем.
|