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, $key, OPENSSL_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?