Шифрование
#3
Отправлено 26.01.2006, 10:18:43
#5
Отправлено 29.01.2006, 02:07:52
function Decode(const S: AnsiString): AnsiString; const Map: array[Char] of Byte = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); var I: LongInt; begin case Length(S) of 2: begin I := Map[S[1]] + (Map[S[2]] shl 6); SetLength(Result, 1); Move(I, Result[1], Length(Result)) end; 3: begin I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12); SetLength(Result, 2); Move(I, Result[1], Length(Result)) end; 4: begin I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12) + (Map[S[4]] shl 18); SetLength(Result, 3); Move(I, Result[1], Length(Result)) end end end; function Encode(const S: AnsiString): AnsiString; const Map: array[0..63] of Char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz0123456789+/'; var I: LongInt; begin I := 0; Move(S[1], I, Length(S)); case Length(S) of 1: Result := Map[I mod 64] + Map[(I shr 6) mod 64]; 2: Result := Map[I mod 64] + Map[(I shr 6) mod 64] + Map[(I shr 12) mod 64]; 3: Result := Map[I mod 64] + Map[(I shr 6) mod 64] + Map[(I shr 12) mod 64] + Map[(I shr 18) mod 64] end end;
Base64 кодирование
#8
Отправлено 30.01.2006, 17:56:22
Как можно по хэшу восстановить текст? Кроме брут-форса.
Как я понял, md5 подходит только для хранения паролей (или чего-то подобного), а расшифровке (по ключу или еще чему) не поддается.
Сообщение отредактировал Xaos|CuHTe3: 30.01.2006, 17:57:01
#9
Отправлено 31.01.2006, 10:04:56
Совершенно в дырдочку!Thanks a lot, Baron D' Krot . Но!
Как можно по хэшу восстановить текст? Кроме брут-форса.
Как я понял, md5 подходит только для хранения паролей (или чего-то подобного), а расшифровке (по ключу или еще чему) не поддается.
Именно для того хэш и придуман - чтоб исходный текст можно было только брутфорсом восстановить.
А ежели надо ещё и расшифровывать - то другой алгоритм надо.
#12
Отправлено 31.01.2006, 14:56:04
Ну если ключ одноразовый, и длина равна длине сообщения, то простой XOR превращается в шифр с абсолютной криптостойкостью.Млин, а есть нормальный алгоритм шифрования по ключу?(XOR слишком легко, RSA слишком долго)
Шутка конечно, я понимаю что вам нужно другое
Сообщение отредактировал Vadziku: 31.01.2006, 14:57:00
#14
Отправлено 01.02.2006, 12:37:40
http://www.schneier.com/blowfish.html
#16
Отправлено 05.02.2006, 23:09:36
- Стандарт несимметричного шифрования - RSA.
Бесплатный сорсов и компонентов по обоим алгоритмам на паскале в инете тьма. DES раз в 40 быстрее RSA (по опыту)
Что касается MD5, ГОСТ, SHA, ADLER, HAVAL, RIPEMD - то это скорее не алгоритмы шифрования, а алгоритмы хеширования (применяются в процедуре генерации цифровой подписи или для безопасного хранения пароля).
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0