Как реализовать это на PHP

Discussion in 'PHP' started by Student :), 14 Mar 2014.

  1. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    Есть некая функция на Java для создания хеша

    PHP:
    public static String getDeviceID(String paramString1String paramString2)
      {
        try
        {
          
    String str1 paramString1 "SOS" paramString2;
          
    byte[] arrayOfByte MessageDigest.getInstance("MD5").digest(str1.getBytes());
          
    StringBuffer localStringBuffer = new StringBuffer();
          for (
    int i 0arrayOfByte.lengthi++) {
            
    localStringBuffer.append(Integer.toHexString(0x100 0xFF arrayOfByte[i]).substring(13));
          }
          
    String str2 localStringBuffer.toString();
          return 
    str2;
        }
        catch (
    NoSuchAlgorithmException localNoSuchAlgorithmException) {}
        return 
    null;
      }
    Как это реализовать на PHP? буду очень вам благодарен
     
    #1 Student :), 14 Mar 2014
    Last edited: 14 Mar 2014
  2. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Что-то мне подсказывает
    function getDeviceID($paramString1,$paramString2) return md5($paramString1."SOS".paramString2);

    проверь.
     
    _________________________
  3. Rubaka

    Rubaka Elder - Старейшина

    Joined:
    2 Sep 2007
    Messages:
    263
    Likes Received:
    150
    Reputations:
    28
    Да не вроде.
    byte[] arrayOfByte = MessageDigest.getInstance("MD5").digest(str1.getBytes());
    возвращает байтовый массив который является md5 строки,потом в цикле по нему совершается странная битовая магия.Мбыть чтото типа

    Code:
    function deviceId($str1,$str2){
    $result='';
    $digest=md5($str.'SOS'.$str2);
        for($i=0,$i<len($digest),$i++){
         // Int2Hex надо руками запилить
         $elem=Int2Hex(0x100|0xFF&$digest[$i]);
         $result=$result.substr($elem,1,3)
      }
     return $result;
    }
    
    Хотя да! SO пишет что md5
    http://stackoverflow.com/questions/415953/generate-md5-hash-in-java
     
    #3 Rubaka, 17 Mar 2014
    Last edited: 17 Mar 2014
  4. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Rubaka, ну типа MessageDigest.getInstance в byte переводит, а магия переводит byte в строку hex формате. типа в "056fab".

    Я так думаю (с)
     
    _________________________