Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 13.07.2012 07:32 / 13.07.2012 07:38
Почему-то некоторые проектировщики очень любят бинарные данные в электронных подписях, которые приходится заворачивать в base64 при передаче в текстовых протоколах. В случае с liqpay лучше было использовать sha1(str, false) и передавать шестнадцатиричную строку, которую достаточно просто получить и обработать на любом языке, но разработчики не подумали об этом. Похожий механизм использует Платеж.ру, только для md5-хеширования. В таких случаях позвать внешний скрипт на языке общего назначения самое милое дело. :)#!/usr/bin/env python # encoding: utf-8 import sys import hashlib import base64 def main(): m = hashlib.md5() m.update(sys.argv[1]) print base64.b64encode(m.digest()), sys.exit(0) def usage(): print "Calculate md5_base64." print "Usage: %s string" % sys.argv[0] sys.exit(1) if __name__ == '__main__': if len(sys.argv) > 1: main() else: usage()Использовать несложно и уж точно проще, чем звать php:
$h[^file::exec[str_md5_b64.py;;string]] md5: $h.text