| Новости | 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