Автор: Setuper 5.3.2010, 13:03
Название: md5
Версия: 1.1.2
Хаб: RusHub
Автор библиотеки: Roberto Ierusalimschy
Описание: Библиотека для получения md5 хеша.
Использование: Содержимое архива md5_1.1.2.rar распаковываем в папку libs. В скриптах библиотека подключается так: require"md5"
Мануал по функциям библиотеки
Все функции, зарегистрированные в таблице md5
Код
md5.sum(message)
Вычисляет MD5 хеши для указанного сообщения. Эта функция берёт входящее сообщение, которое может быть произвольной длины и произвольного содержания, и выводит 128-битный отпечаток (дайджест строки). Входящая строка преобразуется в 16-байтную строку. Предполагается, что это вычисление не может привести к одинаковым хешам от двух различных сообщений.
Код
md5.sumhexa(message)
Данная функция на подобии функции md5.sum, но возвращает величину из 32-х шестнадцатиричных значений.
Код
md5.crypt(message, key [,seed])
Кодирует строку, используя MD5, в CFB (Cipher-feedback mode). message - произвольная строка, которая должна быть закодирована. key - произвольная строка, которая используется в качестве ключа для кодирования. seed - необязательный параметр.
Если необязательный параметр не задан, то вместо него для кодирования используется значение функции os.time(). Рекомендуется использовать различные значения параметра seed для каждого сообщения. Параметр seed не является приватным параметром, которые следует прятать, так как этот параметр передеётся в начале закодированного сообщения.
Длина закодированного сообщения равна длине сообщения, плюс длина параметра seed, плюс один.
Код
md5.decrypt(message, key)
Функция декодирует сообщение, закодированное функцией md5.crypt. Для любого сообщения, ключа и параметра seed выполнимо следующее тождество: md5.decrypt(md5.crypt(msg, key, seed), key) == msg
Код
md5.exor(s1, s2)
Функция возвращает строку в виде побитовой разницы между строками s1 и s2. Строки s1 и s2 должны иметь одинаковую длину, и эта длина равна длине возвращаемой строки.
Библиотека win32:
md5_1.1.2.rar ( 21.47 килобайт )
: 32Библиотека win64:
md5_1.1.2_win64.rar ( 20.9 килобайт )
: 7Скрипт для тестирования и обучения работе с функциями:
test_md5.lua ( 2.64 килобайт )
: 12Проект для сборки на vs2008:
md5_1.1.2_src_vs9.zip ( 24.57 килобайт )
: 2
Автор: Nickolya 6.3.2010, 15:18
Спасибо за библиотеку. Есть вопрос, вот допустим нам нужно взаимодействие пхп - луа, но мы не хотим передавать данные в виде "как есть", хотим шифровать их, какие функции в пхп и луа (при помощи этой библиотеки) можно использовать для совместного использования?
Автор: Setuper 6.3.2010, 15:47
В php есть функция:
Код
string md5(string $str [, bool raw_output])
Проводим аналоги этой функции в Lua:
Код
php <-> lua
====================
md5($str) <-> md5.sumhexa(str)
md5($str, true) <-> md5.sum(str)
Автор: Nickolya 6.3.2010, 16:08
Но хотелось бы именно фукнции кодировки с ключом, а мд5 сумма больше подходит для контроля целостности файла чем для шифрования...
Автор: Setuper 6.3.2010, 17:05
а что значит взаимодействие php и lua ?
Автор: Nickolya 6.3.2010, 17:39
Допустим пхп кодирует сообщение и только 1 раз передает особым образом ключ кодирования, а уже в луа надо сообщение расшифровать. Вот и вся задача в том какие функции одного шифрования будут работать и в пхп и в луа...
Автор: Setuper 6.3.2010, 18:22
А где это использовать?
Ведь мы вместо php используем lua.
Тут ведь скорее вот как надо: при помощи lua кодируем сообщение и в js коде передаём браузеру функцию декодирования. Опять же при помощи js пользователь вводит у себя там секретный ключ, который запишется в его js переменную и может использоваться для декодирования. Поэтому функцию декодирования нужно не для php искать, а для js
Автор: Nickolya 6.3.2010, 21:59
Да, сейчас при наличии луа для веба необходимость отпала, однако раньше это можно было использовать...