国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison php教程 PHP開發(fā) Explication détaillée du cryptage, du décryptage, de la signature et de la vérification de la signature php rsa

Explication détaillée du cryptage, du décryptage, de la signature et de la vérification de la signature php rsa

Dec 30, 2016 am 09:21 AM

Chiffrement, décryptage, signature, vérification de signature php rsa

étant donné que l'organisation tierce utilise la version Java de la méthode de cryptage et de décryptage rsa, je viens de commencer à trouver de nombreuses versions PHP de cryptage et de décryptage rsa sur Internet. Mais la plupart d’entre eux ne sont pas adaptés à l’amarrage avec Java.

La version php suivante convient à l'amarrage avec l'interface Java. La clé Java applicable doit être ajoutée lors de l'utilisation du langage php

-----BEGIN CERTIFICATE-----
  
-----END CERTIFICATE-----


Utilisez la clé?:

Clé publique de chiffrement public_key.cer

Clé privée de décryptage private_key.key

Clé privée de signature sign_key.key

Clé publique de vérification verify.cer

<?php
class RSAUtils{
  //加密公鑰
  function redPukey()
  {   
    //拼接加密公鑰路徑
    $encryptionKeyPath="D:/encryptions.cer";  
    $encryptionKey4Server = file_get_contents($encryptionKeyPath);
 
    $pem = chunk_split(base64_encode($encryptionKey4Server),64,"\n");//轉(zhuǎn)換為pem格式的公鑰
    $pem = "-----BEGIN CERTIFICATE-----\n".$pem."-----END CERTIFICATE-----\n";
    $publicKey = openssl_pkey_get_public($pem);
    return $publicKey;
  }
   
  //解密私鑰
  function redPikey()
  {   
    //拼接解密私鑰路徑
    $decryptKeyPath="D:/decrypts.key";  
    $decryptKey4Server = file_get_contents($decryptKeyPath);
 
    $pem = chunk_split($decryptKey4Server,64,"\n");//轉(zhuǎn)換為pem格式的私鑰
    $pem = "-----BEGIN PRIVATE KEY-----\n".$pem."-----END PRIVATE KEY-----\n";
    $privateKey = openssl_pkey_get_private($pem);
    return $privateKey;
  }
   
  //簽名私鑰
  function redSignkey()
  {   
    //拼接簽名路徑
    $signKeyPath="D:/DEMO/sign.key";
    $signKey4Server = file_get_contents($signKeyPath);
 
    $pem = chunk_split($signKey4Server,64,"\n");//轉(zhuǎn)換為pem格式的私鑰
    $pem = "-----BEGIN PRIVATE KEY-----\n".$pem."-----END PRIVATE KEY-----\n";
    $signKey = openssl_pkey_get_private($pem);
    return $signKey;
  }
   
  //驗(yàn)簽公鑰
  function redVerifykey()
  {   
    //拼接驗(yàn)簽路徑
    $verifyKeyPath="D:/DEMO/verify.cer"; 
    $verifyKey4Server = file_get_contents($verifyKeyPath);
 
    $pem = chunk_split(base64_encode($verifyKey4Server),64,"\n");//轉(zhuǎn)換為pem格式的公鑰
    $pem = "-----BEGIN CERTIFICATE-----\n".$pem."-----END CERTIFICATE-----\n";
    $verifyKey = openssl_pkey_get_public($pem);
    return $verifyKey;
  }
   
  //公鑰加密
  function pubkeyEncrypt($source_data, $pu_key) {
    $data = "";
    $dataArray = str_split($source_data, 117);
    foreach ($dataArray as $value) {
      $encryptedTemp = "";
      openssl_public_encrypt($value,$encryptedTemp,$pu_key);//公鑰加密
      $data .= base64_encode($encryptedTemp);
    }
    return $data;
  }
   
  //私鑰解密
  function pikeyDecrypt($eccryptData,$decryptKey) {
    $decrypted = "";
    $decodeStr = base64_decode($eccryptData);
    $enArray = str_split($decodeStr, 256);
 
    foreach ($enArray as $va) {
      openssl_private_decrypt($va,$decryptedTemp,$decryptKey);//私鑰解密
      $decrypted .= $decryptedTemp;
    }
    return $decrypted;
  }
   
  
}
?>


Remarque?:

est parfois crypté avec base64_encode et transmis à d'autres pages sous forme de GET une fois déchiffré. avec base64_decode, un message d'erreur appara?t.

Lorsque j'ai rencontré ce problème, je me demandais pourquoi certains pouvaient être décryptés correctement, mais certains étaient tronqués

Après avoir vérifié plus tard, j'ai trouvé?? qu'il y avait des caractères chinois, une fois passé sous la forme GET, le nombre sera remplacé par des espaces

Afin d'éviter les caractères tronqués, j'ai fait une étape de substitution puis je l'ai déchiffré. de caractères tronqués n'existe plus?!

Par exemple, si vous transmettez une variable oid sous la forme de GET, alors lors du décryptage et de la restauration, remplacez d'abord les espaces par des nombres. Ensuite, la sortie sera normale. >

Comme suit?: $oid=base64_decode(str_replace (" "," ",$_GET[oid]));


Merci d'avoir lu, j'espère que cela pourra aider tout le monde, merci vous pour votre soutien à ce site !

Pour plus d'articles sur le chiffrement, le décryptage, la signature et la vérification de signature php rsa, veuillez faire attention au site Web PHP chinois?!

Déclaration de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276