»   Список форумов   »   Все обо всем   »   Информационные технологии
 

MD5 (Unix)

Страницы: 1

SaintDragon - Вт 24 Июн, 2014 17:20
Есть старый алгоритм шифрования md5: http://ru.wikipedia.org/wiki/MD5
Есть улучшенный md5 (Unix): http://wiki.insidepro.com/index.php/MD5%28Unix%29/ru
описание:
Хэш начинается с сигнатуры $1$, затем идет соль, еще один символ $, а затем - непосредственно хэш.
Длина хэшей - 26...34 символов.
Длина соли - 0...8 символов.
Стандартный формат записи - Хэш.

По сути, Хэш получается в виде: $1$соль$соль_и_хэш или $1$соль$хэш_и_соль

Всё бы ничего, да стандартным md5 не получатся символы "/", "." получаемые в md5 (unix).

пример:
пароль: 123, соль: 12345678
получаем md5: 202cb962ac59075b964b07152d234b70
получаем  md5 (unix): $1$12345678$tRy4cXc3kmcfRZVj4iFXr/
проверить: http://www.insidepro.com/hashes.php?lang=rus

кто подскажет, как работает алгоритм md5 (unix) и откуда в хэш попадают  "/", "." ?

есть база в которую через php записывается crypt(соль, пароль) т.е. по алгоритму md5 (unix) хэш этой пары,
мне нужно средтвами 1с получить тот же результат

Странный Ник - Вт 24 Июн, 2014 17:54
Цитируя SaintDragon:
кто подскажет, как работает алгоритм md5 (unix) и откуда в хэш попадают  "/", "." ?

Алгоритм примерно одинаковые, но в unix версии добавили соль, для защиты от rainbow атак. Эти символы попадают в хэш по той причине, что в unix версии расширена маска символов.
В оригинальном md5 она [0-9af]
в unix [a-zA-Z0-9./]

Протянуть алгоритм на прямую врятли выйдет, но можно попробовать написать модуль для 1C реализующий данный алгоритм (не уверен умеет ли 1C нормально грузить сторонние модули)

SaintDragon - Вт 24 Июн, 2014 18:02
Странный Ник, понятно., спасибо. т.е. проще будет php-скрипт запускать в 1с с функцией crypt.
в 1с функция md5 обычного - встроена.

Странный Ник - Вт 24 Июн, 2014 18:03
SaintDragon, так а почему не использовать в php обычный md5? просто с солью

MurLemur - Ср 25 Июн, 2014 0:19
Цитируя SaintDragon:
кто подскажет, как работает алгоритм md5 (unix)


Ну судя по его краткому описанию: "Фактически, это цикл на 1000 вызовов алгоритма MD5. "

То есть теоретически в 1с можно его описать используя встроенную считалку md5.

Вот пример реализации на java : http://www.java2s.com/Open-Source/Java/Groupware/LibreSource/md5/MD5Crypt.java.htm
Вот пример на php : http://phpclub.ru/talk/threads/%D0%91%D0%B0%D0%B3%D0%B0-crypt.68042/#post-608933
Вот еще пример на javascript http://pajhome.org.uk/crypt/md5/contrib/md5_crypt.js

Или плюнуть на эти изыски, и воспользоваться каким-то таким костылем :
ScrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
ScrptCtrl.Language = "PHPScript";  
.....

SaintDragon - Ср 25 Июн, 2014 3:00
Странный Ник, через ПхП уже сделаны 300+ паролей, у них всех Хэш переписывать придёться..
Цитируя MurLemur:
Ну судя по его краткому описанию: "Фактически, это цикл на 1000 вызовов алгоритма MD5. "

MurLemur, увы, это не корректное описание, хоть миллион раз примени его, символы "/" и "." с юникса не появятся.
За ссылки спасибо, код иходный по созданию хэша у меня есть. Идёт на пхп: crypt ($solt, $pass)
Цитируя MurLemur:
ScrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
ScrptCtrl.Language = "PHPScript";  

да,чем-топодобным буду в 1с описывать

Страницы: 1