Алгоритм b64_md5 Пола Джонстона на http://pajhome.org.uk/crypt/md5 - PullRequest
0 голосов
/ 18 июля 2011

Я пытаюсь использовать php curl для захвата транзакции интернет-банкинга. к сожалению, банк использует алгоритм b64_md5 для передачи имени пользователя и пароля на сервер, выполняемый этим сценарием md5.js . Я прибегнул к помощи функции php, чтобы симулировать это. но я могу найти что-то помочь.

вот их код для генерации пароля

function checkScript(){
    pCheckScript.innerHTML = "";
    document.form_000001.pSubmit.disabled = false;
    document.form_000001.pCancel.disabled = false;
    document.form_000001.challenge.value = "[B@6be16be1"
    document.form_000001.login_name.focus();}
function submitForm(){
    var vPassword = "";
    for (var i = 0; i < document.form_000001.password.value.length; i++)vPassword = vPassword + "*";
    document.form_000001.login_name.size = 1;
    document.form_000001.password.size = 1;
    document.form_000001.login_name.style.visibility = "hidden";
    document.form_000001.password.style.visibility = "hidden";
    textLoginName.innerHTML = document.form_000001.login_name.value;
    textLoginPassword.innerHTML = vPassword;
    document.form_000001.login_name.value = b64_md5(document.form_000001.login_name.value.toLowerCase());
    document.form_000001.password.value = b64_md5(b64_md5(document.form_000001.password.value) + document.form_000001.challenge.value);
    return true;}

Вопрос в том, как построить функцию php для симуляции этого.

1 Ответ

2 голосов
/ 18 июля 2011

Вот пример, который использует base64_encode и md5.

<?php

// This assumes that the challenge never changes.
$challenge = '[B@6be16be1';

$username = base64_encode(md5(strtolower('username')));
$password = base64_encode(md5(base64_encode(md5('password')) . $challenge));
...