Russian Qt Forum

Qt => Общие вопросы => Тема начата: crashtua от Май 04, 2011, 21:09



Название: Контрольная сумма строки
Отправлено: crashtua от Май 04, 2011, 21:09
Как модно вычислить контрольную сумму строки? Есть ли вероятность, что для двух разных строк контрольная сумма будет одинаковой?


Название: Re: Контрольная сумма строки
Отправлено: LisandreL от Май 04, 2011, 21:25
Как модно вычислить контрольную сумму строки?
QByteArray QCryptographicHash::hash ( const QByteArray & data, Algorithm method ) [static] - не знаю насколько уж это моДно.

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

P.S. Учтите, что у одной и той же строки в разных кодировках хеш будет разный.


Название: Re: Контрольная сумма строки
Отправлено: Пантер от Май 04, 2011, 21:41
md5


Название: Re: Контрольная сумма строки
Отправлено: Amigo_sa от Май 05, 2011, 10:49
Если есть необходимость использовать более устойчивый алгоритм получения КС, то можно использовать библиотеку Qt Cryptographic Architecture (QCA) (http://delta.affinix.com/qca/), там очень хорошая документация (http://delta.affinix.com/docs/qca/index.html), и за это мне нравится Qt :)
Md5 имеет длину 128 бит, sha1 - 160, sha256 - 256 бит, ...). Чтобы уменьшить вероятность коллизий, вы можете выбрать более длинную КС.