Справочник по PHP : Функции работы с данными : Строковые функции : Строковые суммы и хеш-функции

смотрим также

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Содержание

strlen

Возвращает длину строки.

Синтаксис:

int strlen(string str)

Возвращает просто длину строки, т.е., сколько символов содержится в str.

Строка может содержать любые символы, в том числе и с нулевым кодом. Функция strlen() будет правильно работать и с такими строками.

count_chars

Возвращает информацию о символах строки.

Синтаксис:

mixed count_chars(string str [, int mode])

Функция count_chars() подсчитывает частоту встречаемости каждого байта (0-255) в строке str и возвращает в массиве результат согласно необязательному аргументу mode. mode может принимать следующие значения:

  • 0 (по умолчанию)- массив с байтами в качестве индексов и частотой повторения в качестве значений элемента массива
  • 1 - похож на 0, но отсутствующие в строке str байты не возвращаются
  • 2 - похож на 0, но возвращаются только те байты, которые отсутствуют
  • 3 - возвращается строка, состоящая из всех обнаруженных символов
  • 4 - возвращается строка, состоящая из всех отсутствующих символов

md5

Получение строки-хеша MD5.

Синтаксис:

string md5(string str);

Возвращает хеш-код строки str, основанный на алгоритме корпорации RSA Data Security под названием "MD5 Message-Digest Algorithm".

Хеш-код - это просто строка, практически уникальная для каждой из строк str. То есть вероятность того, что две разные строки, переданные в str, дадут нам одинаковый хеш-код, стремиться к нулю.

В то же время, если длина строки str может достигать нескольких тысяч символов, то ее MD5-код занимает максимум 32 символа.

crc32

Получение полиминала строки crc32.

Синтаксис:

int crc32(string str);

Функция crc32() вычисляет 32-битную контрольную сумму строки str. То есть, результат ее работы - 32-битное (4-байтовое) целое число.

Обычно эту функцию используют для проверки целостности переданных данных.

Эта функция работает гораздо быстрее md5(), но в то же время выдает гораздо менее надежные "хеш-коды" для строки. Так что, теперь, чтобы получить методом случайного подбора для двух разных строк одинаковые "хеш-коды", вам потребуется не триллион лет работы самого мощного компьютера, а всего лишь год-другой.

crypt

Производит симметричное шифрование.

Синтаксис:

string crypt(string str [,string salt]);

В аргументе str задается строка, которую надо зашифровать.

Хеш-код для одной и той же строки, но с различными значениями salt (Кстати, это должна быть обязательно двухсимвольная строка) дает разные результаты. Если параметр salt пропущен, PHP сгенерирует его случайным образом.

В системах, которые поддерживают несколько алгоритмов шифрования, следующие константы устанавливаются равными 1 или 0, в зависимости от того, поддерживается ли данный алгоритм или нет:

  • CRYPT_STD_DES - стандартное 2-байтовое DES-шифрование (SALT=2)
  • CRYPT_EXT_DES - расширенное 9-байтовое DES-шифрование (SALT=9)
  • CRYPT_MD5 - 12-байтовое MD5-шифрование (SALT начинается с $1$)
  • CRYPT_BLOWFISH - расширенное 12-байтовое DES-шифрование (SALT начинается с $2$)

Т.к. данная функция использует односторонний алгоритм шифрования, то функции дешифрования не имеется.

metaphone

Производит вычисление метафон-хеша.

Синтаксис:

string metaphone(string str);

Данная функция схожа по действию с soundex(), вычисляет код произношения слова, переданного в строке str, но с повышенной точностью вычисления, т.к. использует правила произношения английского языка.

Возвращаемое строковое значение может быть переменной длины.

soundex

Вычисления хеша сходности произношения.

Синтаксис:

string soundex(string str);

Функция soundex() используется для проверки правописания, когда приблизительно известно как звучит слово, но не известно, как оно пишется, и имеется словарь (база данных), относительно которого можно осуществить проверку.

Возвращается строка из 4 символов: первая буква слова и 3 цифры.

soundex("Euler") == soundex("Ellery") == "E460";
soundex("Gauss") == soundex("Ghosh") == "G200";
soundex("Hilbert") == soundex("Heilbronn") == "H416";
soundex("Knuth") == soundex("Kant") == "K530";
soundex("Lloyd") == soundex("Ladd") == "L300";
soundex("Lukasiewicz") == soundex("Lissajous") == "L222";
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="http://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования