Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.28;
Скачать: [xml.tar.bz2];

Вниз

Алгоритм шифрования   Найти похожие ветки 

 
Andre V.   (2002-11-19 11:45) [0]

Hi! Подскажите алгоритм одностороннего шифрования, т.е. из А в Б, но не из Б в А.


 
Separator   (2002-11-19 11:51) [1]

т.е. Чтоб нельзя было расшифровать? так нельзя сделать


 
Andre V.   (2002-11-19 11:52) [2]

UP!


 
Anatoly Podgoretsky   (2002-11-19 11:53) [3]

For I := 1 to N do buf[i]:=0;


 
Skier   (2002-11-19 11:56) [4]

>Andre V.

Класс для кодирования/декодирования файла. (c) Марко Кэнту


unit EncodStr;

interface

uses
Classes;

type
TEncodedStream = class (TFileStream)
private
FKey: Char;
public
constructor Create(const FileName: string; Mode: Word);
function Read(var Buffer; Count: Longint): Longint; override;
function Write(const Buffer; Count: Longint): Longint; override;
property Key: Char read FKey write FKey default "A";
end;

implementation

constructor TEncodedStream.Create(
const FileName: string; Mode: Word);
begin
inherited Create (FileName, Mode);
FKey := "A";
end;

function TEncodedStream.Write(const Buffer;
Count: Longint): Longint;
var
pBuf, pEnc: PChar;
I, EncVal: Integer;
begin
// allocate memory for the encoded buffer
GetMem (pEnc, Count);
try
// use the buffer as an array of characters
pBuf := PChar (@Buffer);
// for every character of the buffer
for I := 0 to Count - 1 do
begin
// encode the value and store it
EncVal := ( Ord (pBuf[I]) + Ord(Key) ) mod 256;
pEnc [I] := Chr (EncVal);
end;
// write the encoded buffer to the file
Result := inherited Write (pEnc^, Count);
finally
FreeMem (pEnc, Count);
end;
end;

function TEncodedStream.Read(var Buffer; Count: Longint): Longint;
var
pBuf, pEnc: PChar;
I, CountRead, EncVal: Integer;
begin
// allocate memory for the encoded buffer
GetMem (pEnc, Count);
try
// read the encoded buffer from the file
CountRead := inherited Read (pEnc^, Count);
// use the output buffer as a string
pBuf := PChar (@Buffer);
// for every character actually read
for I := 0 to CountRead - 1 do
begin
// decode the value and store it
EncVal := ( Ord (pEnc[I]) - Ord(Key) ) mod 256;
pBuf [I] := Chr (EncVal);
end;
finally
FreeMem (pEnc, Count);
end;
// return the number of characters read
Result := CountRead;
end;



end.


 
Andre V.   (2002-11-19 11:57) [5]

Ценю Ваши шуточки. Предполагается, что множесто А отображается на множесто Б неоднозначно.


 
Reindeer Moss Eater   (2002-11-19 12:00) [6]

MD5


 
Anatoly Podgoretsky   (2002-11-19 12:02) [7]

Для неодназначности можно применить рандом, но тебе задали уточняющий вопрос Separator © (19.11.02 11:51)


 
Sirus   (2002-11-19 12:08) [8]

Можешь сделать SHL или SHR строки и получится белиберда...
Сделаешь два раза получится 2 Х Белиберда...


 
han_malign   (2002-11-19 12:21) [9]

Любой алгоритм с добавлением случайного ключа.
2 All Применяется для обмена шифрованными сообщениями, в течении сессии ключ обычно меняется, правда, все равно, надо как то извратиться при обмене ключами(как вариант открытый ключ, генерящийся из локального серверного по определенному алгоритму, или шифровать предыдущим ключем). При постоянной смене ключа, нет достаточно данных для взлома перебором. Кажется так. Такие алгоритмы применяются в радио/сотовой связи(конкретно некоторые радиотрубки), но как реализованы - ... знает.
З.Ы. Правда взломать можно все, вопрос кому это надо.
З.З.Ы. В Росси запрещено пользоваться криптографическими алгоритмами не зарегистрированными в ФСБ, одно из условий регистрации - наличие универсального ключа известного ФСБ.


 
Andre V.   (2002-11-19 12:46) [10]

Идея состояла в том, чтобы хранить имена пользователей системы и кодированные пароли. Пользователь вводит свое имя и пароль, он кодируется по известному алгоритму и сравнивается с сохраненным. Если совпадают, то пароль был верным.


 
Andre V.   (2002-11-19 12:48) [11]

P.S. Сломать действительно можно все. Но что-то трудней, а что-то легче.


 
Reindeer Moss Eater   (2002-11-19 12:50) [12]

>Andre V.
Тебе же сказали - MD5


 
Anatoly Podgoretsky   (2002-11-19 12:54) [13]

Так это не односторонний :-), а не симметричный алгоритм, позволяет расшифровать зашифрованное сообщение.



 
Andre V.   (2002-11-19 13:53) [14]

Was Ist MD5???


 
Reindeer Moss Eater   (2002-11-19 13:55) [15]

Алгоритм одностороннего шифрования (хеширования)


 
Andre V.   (2002-11-19 14:00) [16]

Как ????


 
Anatoly Podgoretsky   (2002-11-19 14:01) [17]

Reindeer Moss Eater (19.11.02 13:55)
Перепутал, это подойдет, точнее то что нужно


 
Reindeer Moss Eater   (2002-11-19 14:07) [18]

Andre V.
Например Indy 8.0.22, TIdCoderMD5


 
Andre V.   (2002-11-19 14:47) [19]

СПАСИБО!!!!!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.11.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
3-92887
ger
2002-11-11 10:15
2002.11.28
Ошибка при удалении


1-93109
Mafsha
2002-11-17 16:35
2002.11.28
Как перевести время в секунды?


3-92882
Владимир Т
2002-11-11 02:57
2002.11.28
Системные таблицы в Interbase


3-92910
Igorian
2002-11-11 11:54
2002.11.28
готовые шаблоны FastReport


1-93044
Crey
2002-11-14 13:41
2002.11.28
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский