Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Problema encoding con chiave pubblica ed openssl

    Sto facendo una prova di coding ed encoding con chiave pubblica e privata.
    Il mio problema è che di default viene usato un seed casuale dalla funzione openssl_public_encode() e quindi lo stesso testo genera stringhe codificate diverse ogni volta.
    A me servirebbe che per un dato testo si ottenga sempre la stessa stringa criptata.

    Sto provando con questo codice
    Codice PHP:
    $key "-----BEGIN PUBLIC KEY-----
    MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0
    FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/
    3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQAB
    -----END PUBLIC KEY-----"
    ;

    $data "Stringa di prova";

    $res openssl_public_encrypt($data$encrypted_data$keyOPENSSL_NO_PADDING);
    if ( ! 
    $res )
    {
        
    // usando OPENSSL_NO_PADDING la funzione di encoding fallisce e finisco qui
        
    echo "Encryption failed!";
    }
    else
    {
        
    // usando OPENSSL_PKCS1_PADDING (che è il default) la funzione di encoding fa il suo dovere
        
    echo base64_encode($encrypted_data);

    Avete esperienza in materia e sapete da cosa può dipendere?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Trovato l'inghippo, non usando il padding, la stringa da criptare deve essere lunga quanto la chiave.

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.