Подсчет контрольной суммы MD5

программирование md5

Пытаюсь настроить API одного SMS сервиса. Собственно инструкция:

Для подсчета контрольной суммы необходимо:
1)отсортировать все входящие ключи, добавив к ним параметры version = 3.0 и action = вызываемая функция
2)сделать конкатенация значений по этим ключам
3)сделать конкатенацию полученного значения с приватным ключом
4)взять MD5 от полученного результата

Делаю так:

//Ключи
var openKey="1111";
var privateKey="22222";
var senderName="test";
var messageText="Test";
var phoneNumber="79871234567";
var lifeTime=0;
var apiVersion="3.0";
var apiAction="sendSMS";
var sendTime = "";

//конкатенация значений по этим ключам
var str=apiVersion+apiAction+openKey+senderName+messageText+phoneNumber+sendTime+lifeTime;

//конкатенацию полученного значения с приватным ключом
var strKey=str+privateKey

//взять MD5 от полученного результата
var hash = hex_md5(strKey);


$.post(
"http://atompark.com/api/sms/3.0/sendSMS",
{
version:apiVersion,
action:apiAction,
key:openKey,
sum:hash,
sender:senderName,
text:messageText,
phone:phoneNumber,
datetime:sendTime,
sms_lifetime:lifeTime
}

Возвращается ошибка {"error":"Wrong control sum.","code":"-2","result":"false"}. В чём косяк не могу понять? P.S. суппорт сервиса мальца неадекватен.
Ответы:
Точные правила формирования строки нужны (строки strKey в Вашем коде) - вот в чем проблема. Чуть какая ошибка в синтаксисе при формировании строки - md5 сразу будет совсем другим. Порядок подстрочек в strKey важен (раз уж написано про сортировку), но в каком порядке их сортировать, из описания вопроса не понятно.
Гм. Нагуглил Ваш сервис. Там же все написано, пример дан:


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.