За последние 24 часа нас посетили 17107 программистов и 1297 роботов. Сейчас ищут 1426 программистов ...

помогите с переводом функции java в php

Тема в разделе "PHP для профи", создана пользователем Slavka, 11 апр 2017.

  1. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    это полная функция на Java

    Код (Text):
    1. public static String buildSignatrueValueByCspSignHexadecimal(
    2.             String cspSignHexadecimal) throws DecoderException {
    3.         byte[] signBytes = Hex.decodeHex(cspSignHexadecimal.toCharArray());
    4.      
    5.         ArrayUtils.reverse(signBytes);
    6.      
    7.         return new Base64().encodeAsString(signBytes);
    8.     }

    вот что пока есть

    PHP:
    1. function buildSignatrueValueByCspSignHexadecimal ($str)
    2. {
    3. //преобразование строки $orawSignature в массив символов
    4.  
    5. $orawSignature_char = str_split($str);  //cspSignHexadecimal.toCharArray()
    6.  
    7. //$signBytes = хз что
    8.  
    9. $signBytes_reverse =  array_reverse   ($signBytes)  // перевернет байты или нет - будет видно позже
    10. return   base64_encode ($signBytes_reverse)
    11.  
    12. }
    Hex.decodeHex - описание функции https://commons.apache.org/proper/c...mmons/codec/binary/Hex.html#decodeHex(char[])

    Converts an array of characters representing hexadecimal values into an array of bytes of those same values. The returned array will be half the length of the passed array, as it takes two characters to represent any given byte. An exception is thrown if the passed char array has an odd number of elements.

    смотрел в сторону hex2bin - вроде как нето она делает
    --- Добавлено ---
    на входе будет примерно вот такая строка
    689D82EB139B07E21DCF2084C40564AE5FC2213C786B1D0F42D8B23994459DB1FD0F054C26FA034EC80127C495455F74EA765356DA06F2D3237D05D8EF076C44
    --- Добавлено ---
    сейчас попробую сделать то что должно быть на каждом этапе функции ( если смогу яву запустить)
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не разбивай строку, а всю скорми hex2bin просто
     
    Slavka и denis01 нравится это.
  3. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    уфф на выходе из JAVA получилась вот такая строка
    RGwH79gFfSPT8gbaVlN26nRfRZXEJwHITgP6JkwFD/2xnUWUObLYQg8da3g8IcJfrmQFxIQgzx3iB5sT64KdaA==

    в пыхе застрял с переворачиванием байт - массива да и не массив это похоже
    --- Добавлено ---
    совсем не такая строка вышла ((
     
  4. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Там всего то 3 функции в правильном порядке расставить :)
    PHP:
    1. return base64_encode(strrev(hex2bin($str)));
     
    Slavka нравится это.
  5. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    начал пилить функцию в яве

    на выходе

    Код (Text):
    1.         byte[] signBytes = Hex.decodeHex(cspSignHexadecimal.toCharArray());
    2.          System.out.println (new Base64().encodeAsString(signBytes));
    имеем

    aJ2C6xObB+IdzyCExAVkrl/CITx4ax0PQtiyOZRFnbH9DwVMJvoDTsgBJ8SVRV906nZTVtoG8tMjfQXY7wdsRA==
    --- Добавлено ---
    hex2bin уже не подходит ((( не то он выдает
     
  6. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Все собрал ... я идиот - на входе в яву ставил конкретную строку,
    а в пыхе ставил значение генерируемое ..

    вы все оказались правы -


    и это самая минимальная и правильная сборка
     
    TeslaFeo и denis01 нравится это.