Maison >développement back-end >tutoriel php >Résoudre le problème de cryptage d'OpenSSL en PHP

Résoudre le problème de cryptage d'OpenSSL en PHP

不言
不言original
2018-07-11 16:37:331666parcourir

Cet article présente principalement la solution au problème de cryptage d'OpenSSL en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Il est nécessaire ces derniers temps. projets de l'entreprise. Vérifiez l'interface côté chiffrement et java d'OpenSSL. Lorsque l'environnement de test est mis à niveau vers PHP7, une erreur de chiffrement se produira après plusieurs inspections, la cause est enfin trouvée :

  1. <.>Dans l'environnement PHP7

    La méthode est modifiée en openssl_get_privatekeyopenssl_pkey_get_private

  2. Vous devez convertir la clé secrète. Il existe une différence entre le format de clé dans l'environnement fenêtre et dans l'environnement. Environnement Linux (je ne sais pas si cela est lié au système d'exploitation)

  3. La vérification de la clé secrète de PHP nécessite l'en-tête et la queue.

Publiez la méthode ci-jointe ici

Méthode pour convertir le format de la clé secrète :

function transJavaRsaKeyToPhpOpenSSL($content) {
        if ($content) {
            return trim(chunk_split($content, 64, "\n"));
        }
        return false;
    }
Méthode pour ajouter un en-tête et une queue :

function appendFlags($content, $isPublic = true) {
        if ($isPublic) {
            return "-----BEGIN PUBLIC KEY-----\n" . $content . "\n-----END PUBLIC KEY-----\n";
        }
        else {
            return "-----BEGIN PRIVATE KEY-----\n" . $content . "\n-----END PRIVATE KEY-----\n";
        }
    }
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn