Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Cosa fa questo codice?

  1. #1
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541

    Cosa fa questo codice?

    Ciao, io purtroppo programmo in .net e il php a parte qualcosa basilare mi è socnosciuto, ora vorrei tradurre questo codice in .net ma non sò da dove cominciare non sapendo cosa fa questo codice.
    Qualcuno potrebbe spiegarmi cosa fanno le varie funzioni?
    grazie a tutti.

    codice:
    <?php
    //Sostituire alle XXXXXXXXXXXX i dati della propria applicazione
    define('FACEBOOK_SECRET', 'XXXXXXXXXXXX', true);
    define('FACEBOOK_ID', 'XXXXXXXXXXXX', true);
      
    function parse_signed_request($signed_request, $secret) {
      list($encoded_sig, $payload) = explode('.', $signed_request, 2);
      
      // decodifico i dati
      $sig = base64_url_decode($encoded_sig);
      $data = json_decode(base64_url_decode($payload), true);
      
      if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
        error_log('Algoritmo sconosciuto. Ci aspettiamo HMAC-SHA256');
        return null;
      }
      
      // verifico la firma digitale
      $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
      if ($sig !== $expected_sig) {
        error_log('Firma digitale non corretta!');
        return null;
      }
      
      return $data;
    }
      
    function base64_url_decode($input) {
        return base64_decode(strtr($input, '-_', '+/'));
    }
    ?>

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    commento direttamente il codice

    Codice PHP:
    <?php
    //Sostituire alle XXXXXXXXXXXX i dati della propria applicazione
    define('FACEBOOK_SECRET''XXXXXXXXXXXX'true); // definisce la costante FACEBOOK_SECRET
    define('FACEBOOK_ID''XXXXXXXXXXXX'true); // definisce la costante FACEBOOK_ID
      
    function parse_signed_request($signed_request$secret) {
      list(
    $encoded_sig$payload) = explode('.'$signed_request2);// crea due variabili ($encoded_sig e $payload) esplodendo la variabile $signed_request (con un massimo di due parti) es. ciao.pippo diventa ciao (variabile $encoded_sig) e pippo (variabile $payload)
      
      // decodifico i dati
      
    $sig base64_url_decode($encoded_sig); //decodifica la variabile dalla codifica in base64 (vedi la funzione in fondo)
      
    $data json_decode(base64_url_decode($payload), true); //decodifica la variabile dalla codifica JSON
      
      
    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') { // se lavariabile $data['algorithm'] scritta in maiuscolo è diversa da HMAC-SHA256
        
    error_log('Algoritmo sconosciuto. Ci aspettiamo HMAC-SHA256'); // da errore
        
    return null;
      }
      
      
    // verifico la firma digitale
      
    $expected_sig hash_hmac('sha256'$payload$secret$raw true); // genera valore hash usando il metodo HMAC, con algoritmo sha256 della variabile $payload utilizzando la chiave $secret, ritornando un valore binario
      
    if ($sig !== $expected_sig) { // se le due variabili sono diverse tra loro da errore
        
    error_log('Firma digitale non corretta!');
        return 
    null;
      }
      
      return 
    $data// ritorna il valore
    }
      
    function 
    base64_url_decode($input) {
        return 
    base64_decode(strtr($input'-_''+/'));
    }
    ?>
    eXvision

  3. #3
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Originariamente inviato da brodik
    commento direttamente il codice

    Codice PHP:
    <?php
    //Sostituire alle XXXXXXXXXXXX i dati della propria applicazione
    define('FACEBOOK_SECRET''XXXXXXXXXXXX'true); // definisce la costante FACEBOOK_SECRET
    define('FACEBOOK_ID''XXXXXXXXXXXX'true); // definisce la costante FACEBOOK_ID
      
    function parse_signed_request($signed_request$secret) {
      list(
    $encoded_sig$payload) = explode('.'$signed_request2);// crea due variabili ($encoded_sig e $payload) esplodendo la variabile $signed_request (con un massimo di due parti) es. ciao.pippo diventa ciao (variabile $encoded_sig) e pippo (variabile $payload)
      
      // decodifico i dati
      
    $sig base64_url_decode($encoded_sig); //decodifica la variabile dalla codifica in base64 (vedi la funzione in fondo)
      
    $data json_decode(base64_url_decode($payload), true); //decodifica la variabile dalla codifica JSON
      
      
    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') { // se lavariabile $data['algorithm'] scritta in maiuscolo è diversa da HMAC-SHA256
        
    error_log('Algoritmo sconosciuto. Ci aspettiamo HMAC-SHA256'); // da errore
        
    return null;
      }
      
      
    // verifico la firma digitale
      
    $expected_sig hash_hmac('sha256'$payload$secret$raw true); // genera valore hash usando il metodo HMAC, con algoritmo sha256 della variabile $payload utilizzando la chiave $secret, ritornando un valore binario
      
    if ($sig !== $expected_sig) { // se le due variabili sono diverse tra loro da errore
        
    error_log('Firma digitale non corretta!');
        return 
    null;
      }
      
      return 
    $data// ritorna il valore
    }
      
    function 
    base64_url_decode($input) {
        return 
    base64_decode(strtr($input'-_''+/'));
    }
    ?>
    Grazie gentilisismo, un ultima cosa, che si intende con:
    esplodendo la variabile

  4. #4
    Originariamente inviato da mexican
    Grazie gentilisismo, un ultima cosa, che si intende con:
    esplodendo la variabile
    http://it.php.net/manual/en/function.explode.php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.