Sign In Создать аккаунт








Tariffs
Limits
Home

Электронная цифровая подпись методом HMAC


Электронная цифровая подпись формируется путем склейки необходимых параметров в указанной последовательности и хеширования их методом hmac. Порядок и количество склеиваемых параметров определяется протоколом.

В приведенных ниже листингах представлены примеры функций, вычисляющих сигнатуру на различных языках, при этом склеенная подписываемая строка передается в качестве параметра data, а секретная фраза в параметре key.

Листинг 1. Вычисление сигнатуры на PHP.

function hmac($key, $data) {
    $b = 64; // byte length for md5
    if (strlen($key) > $b) {
        $key = pack("H*",md5($key));
    }
    $key = str_pad($key, $b, chr(0x00));
    $ipad = str_pad('', $b, chr(0x36));
    $opad = str_pad('', $b, chr(0x5c));
    $k_ipad = $key ^ $ipad ;
    $k_opad = $key ^ $opad;

    return md5($k_opad . pack("H*",md5($k_ipad . $data)));
}


Листинг 2. Вычисление сигнатуры на языке Python.

def signP(data, key):
    import hmac
    h = hmac.new(key)
    h.update(data)
    sign = h.hexdigest()
    return sign


Листинг 3. Вычисление сигнатуры на языке Perl.

use Digest::HMAC_MD5 qw(hmac_md5 hmac_md5_hex);
# Генерируем подпись с ключом
$digest = hmac_md5_hex($data, $key);


Вернуться назад

Партнерам


Платежным системам
Обменным пунктам валют
Кредитным организациям
Агентам по персонификации
МФО и КПКГ
Логотипы, баннеры и кнопки