У меня линукс, я по привычке... Но под винду его тоже можно вставить... Потом от нажатия правой кнопки мыши появляется опция "edit with vim"" писал(а):Да ЩАС!! Встроенного куда?! В nix*/Линукс? А кто Вам про Линукс сказал?!... А у препода Unix/Линукс, да? ;-)))
Вопросы шифрования
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
[OK]
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
Эх... в очередной раз Вы правы...Я разобралась в коде, который предложил мне MOTOCoder, да, это действительно то, что нужно. спасибо MOTOCoder'у и Вам тоже.Serge_Bliznykov писал(а):C_O_D_E, а вот это зря!
Мне лично очень импонирует подход, который предложил Вам MOTOCoder
А за это низкий полнон. Спасибо.Serge_Bliznykov писал(а):по любому из пунктов тут Вам окажут помощь.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
Препод с простенькой ХР на "Вы " разговаривает, а если ему еще и Линукс поставить, то это получиться легкий симбиоз КВН и ComedyClab, не, детская психика бедных студентов, этого не выдержит!Serge_Bliznykov писал(а): Встроенного куда?! В nix*/Линукс? А кто Вам про Линукс сказал?!... А у препода Unix/Линукс, да? ;-)))
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Вот как раз самому понадобилась функция шифрования - написал модуль.
Алгоритм немного улучшенный. Если интересно, вот:
[syntax='Delphi']
unit RandCpt;
interface
uses Classes, SysUtils;
const
BufSize=1024;
Function Crypt(Source,Dest,Pass:string):Int64;
implementation
{преобразование строкового пароля в значение RandSeed}
Function PassToRS(Pass:string):integer;
var
i,r:integer;
begin
r:=0;
for i:=1 to Length(Pass) do
if r+ord(Pass)<MaxInt then
inc(r,ord(Pass)) else
Dec(r,Ord(Pass));
result:=r;
end;
{шифрование/дешифрование}
Function Crypt(Source,Dest,Pass:string):Int64;
var
iFS,oFS:TFileStream;
RBUF,WBUF:array[0..BufSize-1] of byte;
S:integer;
I:integer;
RB:byte;
begin
oFS:=TFileStream.Create(Dest,fmCreate);
oFS.Free;
oFS:=TFileStream.Create(Dest, fmOpenWrite);
iFS:=TFileStream.Create(Source, fmOpenRead);
RandSeed:=PassToRS(Pass);
while iFS.Position<iFS.Size do
begin
S:=iFS.Read(RBUF,SizeOf(RBUF));
for I:=0 to S-1 do
begin
RB:=Random(255);
WBUF:=RBUF XOR RB;
end;
oFS.Write(WBUF,S);
end;
Result:=oFS.Size;
oFS.Free;
iFS.Free;
end;
end.
[/syntax]
Алгоритм немного улучшенный. Если интересно, вот:
[syntax='Delphi']
unit RandCpt;
interface
uses Classes, SysUtils;
const
BufSize=1024;
Function Crypt(Source,Dest,Pass:string):Int64;
implementation
{преобразование строкового пароля в значение RandSeed}
Function PassToRS(Pass:string):integer;
var
i,r:integer;
begin
r:=0;
for i:=1 to Length(Pass) do
if r+ord(Pass)<MaxInt then
inc(r,ord(Pass)) else
Dec(r,Ord(Pass));
result:=r;
end;
{шифрование/дешифрование}
Function Crypt(Source,Dest,Pass:string):Int64;
var
iFS,oFS:TFileStream;
RBUF,WBUF:array[0..BufSize-1] of byte;
S:integer;
I:integer;
RB:byte;
begin
oFS:=TFileStream.Create(Dest,fmCreate);
oFS.Free;
oFS:=TFileStream.Create(Dest, fmOpenWrite);
iFS:=TFileStream.Create(Source, fmOpenRead);
RandSeed:=PassToRS(Pass);
while iFS.Position<iFS.Size do
begin
S:=iFS.Read(RBUF,SizeOf(RBUF));
for I:=0 to S-1 do
begin
RB:=Random(255);
WBUF:=RBUF XOR RB;
end;
oFS.Write(WBUF,S);
end;
Result:=oFS.Size;
oFS.Free;
iFS.Free;
end;
end.
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
Зачем здесь два буфера?" писал(а):RBUF,WBUF:array[0..BufSize-1] of byte;
It's a long way to the top if you wanna rock'n'roll
Впринципе Вы правы, можно обойтись и одним, однако я привык не изменять данные в буфере чтения(мало ли понадобятся). Хоть в данном алгоритме это не нужно, все равно сделал по привычке.somewhere писал(а):Зачем здесь два буфера?
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
2 MOTOCoder в очередной раз спасибо.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.