Вопросы шифрования

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Medved
Сообщения: 256
Зарегистрирован: 14 фев 2008, 20:51
Контактная информация:

&quot писал(а):Да ЩАС!! Встроенного куда?! В nix*/Линукс? А кто Вам про Линукс сказал?!... А у препода Unix/Линукс, да? ;-)))
У меня линукс, я по привычке... Но под винду его тоже можно вставить... Потом от нажатия правой кнопки мыши появляется опция "edit with vim"
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Serge_Bliznykov писал(а):C_O_D_E, а вот это зря!
Мне лично очень импонирует подход, который предложил Вам MOTOCoder
Эх... в очередной раз Вы правы...Я разобралась в коде, который предложил мне MOTOCoder, да, это действительно то, что нужно. спасибо MOTOCoder'у и Вам тоже.
Serge_Bliznykov писал(а):по любому из пунктов тут Вам окажут помощь.
А за это низкий полнон. Спасибо.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Serge_Bliznykov писал(а): Встроенного куда?! В nix*/Линукс? А кто Вам про Линукс сказал?!... А у препода Unix/Линукс, да? ;-)))
Препод с простенькой ХР на "Вы " разговаривает, а если ему еще и Линукс поставить, то это получиться легкий симбиоз КВН и ComedyClab, не, детская психика бедных студентов, этого не выдержит!
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Вот как раз самому понадобилась функция шифрования - написал модуль.
Алгоритм немного улучшенный. Если интересно, вот:
[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]
Ни что так не ограничивает фантазию программиста, как компилятор...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):RBUF,WBUF:array[0..BufSize-1] of byte;
Зачем здесь два буфера?
It's a long way to the top if you wanna rock'n'roll
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

somewhere писал(а):Зачем здесь два буфера?
Впринципе Вы правы, можно обойтись и одним, однако я привык не изменять данные в буфере чтения(мало ли понадобятся). Хоть в данном алгоритме это не нужно, все равно сделал по привычке.
Ни что так не ограничивает фантазию программиста, как компилятор...
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

2 MOTOCoder в очередной раз спасибо.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Ответить