Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых) |
eXeL@B —› Программирование —› Библиотека с hash.pas (много всего, но на дельфи) |
Посл.ответ | Сообщение |
|
Создано: 15 октября 2006 02:11 · Личное сообщение · #1 |
|
Создано: 15 октября 2006 02:19 · Личное сообщение · #2 |
|
Создано: 15 октября 2006 02:20 · Личное сообщение · #3 |
|
Создано: 15 октября 2006 02:37 · Личное сообщение · #4 |
|
Создано: 15 октября 2006 03:35 · Личное сообщение · #5 |
|
Создано: 15 октября 2006 03:52 · Личное сообщение · #6 |
|
Создано: 15 октября 2006 04:11 · Личное сообщение · #7 |
|
Создано: 15 октября 2006 04:49 · Личное сообщение · #8 |
|
Создано: 15 октября 2006 04:53 · Личное сообщение · #9 |
|
Создано: 15 октября 2006 04:59 · Личное сообщение · #10 ValdiS пишет: Никто не мешает "разобрать" ее, выдернуть только необходимое. Именно так и поступил! ))) Т.к. Турбо дельфи начала жаловаться на какую-то строку, отлаживать было в лом, просто тупо взял то что надо, поправил до нужной читабельности кода и применяю не думая как он работает. ----- My love is very cool girl. |
|
Создано: 15 октября 2006 05:07 · Личное сообщение · #11 |
|
Создано: 15 октября 2006 05:07 · Личное сообщение · #12 |
|
Создано: 15 октября 2006 05:10 · Личное сообщение · #13 |
|
Создано: 15 октября 2006 18:08 · Поправил: S_T_A_S_ · Личное сообщение · #14 theCollision пишет: Позвонил к другу и сказал: "Мне влом реализовывать crc32, а время поджимает" Издеваешься над людьми? Чем тратить чужое время погуглил бы минут 5, или сам бы нопейсал за 10, без дебильных таблиц. [HIGHLIGHT=cpp] class crc32 { public: crc32(uint32_t init = 0) : hash(~init) {} operator uint32_t() const { return ~hash; } uint32_t operator()(const void * const message, const size_t bytes) { const uint8_t * p = reinterpret_cast<const uint8_t*>(message); for ( size_t i = 0; i < bytes; ++i ) operator()(p[i]); return *this; } void operator() (const uint8_t octet) { hash ^= octet; #ifdef FAVOR_SMALL_CODE for ( int i = 8; i; --i ) hash = (hash >> 1) ^ lfsr(hash); #else hash = (hash >> 1) ^ lfsr(hash); hash = (hash >> 1) ^ lfsr(hash); hash = (hash >> 1) ^ lfsr(hash); hash = (hash >> 1) ^ lfsr(hash); hash = (hash >> 1) ^ lfsr(hash); hash = (hash >> 1) ^ lfsr(hash); hash = (hash >> 1) ^ lfsr(hash); hash = (hash >> 1) ^ lfsr(hash); #endif } static uint32_t lfsr(uint32_t sr) { return ~((sr & 1) - 1 | ~0xEDB88320); } static const char * test__implementation() { crc32 hash; if ( hash("An Arbitrary String", 19) != 0x6FBEAAE7 ) return "hash(\"An Arbitrary String\", 19) != 0x6FBEAAE7"; return 0; } private: uint32_t hash; };//class crc32[/HIGHLIGHT] |
|
Создано: 15 октября 2006 20:04 · Поправил: Scratch · Личное сообщение · #15 |
|
Создано: 15 октября 2006 20:55 · Поправил: n1kto · Личное сообщение · #16 ValdiS пишет: Ссылку сразу бы давал, чтобы сравнивать... всякая криптография дельфовая, фришной дофига. правда реализации большей частью "студенческие". www.torry.net/pages.php?id=519 сам пользовал оттуда DCPcrypt, когда особой защищенности не надо было: Encryption Algorithms * Blowfish * Cast 128 * Cast 256 * DES, 3DES * Ice, Thin Ice, Ice2 * IDEA * Mars * Misty1 * RC2, RC4, RC5, RC6 * Rijndael (the new AES) * Serpent * Tea * Twofish * Haval * MD4 * MD5 * RipeMD-128 * RipeMD-160 * SHA-1 * SHA-256, SHA-384, SHA-512 * Tiger www.cityinthesky.co.uk/cryptography.html |
|
Создано: 15 октября 2006 22:44 · Личное сообщение · #17 S_T_A_S_ 1. Ты явно читать не умеешь! Так если бы ту умел читать, то ты бы увидел, что я запостил файл для Дельфи а не С++ !!! 2. Если все и вся решать самому, то на Кой ИКС нужны друзья? Тебе возможно и неприятно общаться с друзьями, а я вот не могу без друзей. Обязательно охота узнать как у них дела? Чем занимаются? Когда пойдем пиво пить и другие вопросы. Я как ты жить не смогу и не буду! Лишний повод позвонить к друзьям это благо! ----- My love is very cool girl. |
|
Создано: 15 октября 2006 23:02 · Личное сообщение · #18 |
|
Создано: 16 октября 2006 00:20 · Личное сообщение · #19 theCollision пишет: Ты явно читать не умеешь Зато немного умею писать, прости, что дельфи сейчас нет. infern0 пишет: без дебильных таблиц будет в сотни раз медленее считать В сотни? немного загнул там 2 косвенных обращения, которые зависимы по данным, а здесь линейная последовательность которая параллелится и нет нагрузки на кэш. + бонус - KANAL отдыхает Вообще я бы взглянул на применение, где скорость вышеприведённой имплементации crc32 будет недостаточна. |
|
Создано: 16 октября 2006 00:36 · Поправил: S_T_A_S_ · Личное сообщение · #20 Применительно к серьезным криптоалгоритмам - оптимизированный (таблицы и разворачивание циклов) AES из openssl проигрывает на 8% "тупо написанному" коду (MSVC2003). Почему? [HIGHLIGHT=c] #if defined(_MSC_VER) && !defined(OPENSSL_SYS_WINCE) # define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00) # define GETU32(p) SWAP(*((u32 *)(p))) # define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); } [/HIGHLIGHT] И таких затыков думаю везде полно. |
eXeL@B —› Программирование —› Библиотека с hash.pas (много всего, но на дельфи) |