PHP verwendet OpenSSL, um Zertifikate zu generieren und Beispielcode zu ver- und entschlüsseln

怪我咯
Freigeben: 2023-03-13 16:24:02
Original
2155 Leute haben es durchsucht

OpenSSL ist eine Secure Sockets Layer-Kryptografiebibliothek, die wichtige kryptografische Algorithmen, häufig verwendete Schlüssel- und Zertifikatkapselungsverwaltungsfunktionen sowie SSL-Protokolle umfasst und eine Fülle von Anwendungen zum Testen oder für andere Zwecke bereitstellt.

Nachdem OpenSSL schwerwiegenden Sicherheitslücken ausgesetzt war, wurde festgestellt, dass die meisten über das SSL-Protokoll verschlüsselten Websites ein Open-Source-Softwarepaket namens OpenSSL verwenden. Die OpenSSL-Schwachstelle betrifft nicht nur Websites, die mit https beginnen, Hacker können diese Schwachstelle auch nutzen, um „Heartbleed“-Angriffe direkt auf PCs zu starten. Laut Analyse nutzt eine große Anzahl von Software unter Windows die anfällige OpenSSL-Codebibliothek und kann von Hackern angegriffen werden, um die Speicherdaten auf dem Computer des Benutzers abzugreifen.

Dieser Artikel stellt hauptsächlich die Verwendung von OpenSSL zum Generieren von Zertifikaten sowie die Verschlüsselung und Entschlüsselung in PHP vor. Freunde in Not können sich darauf beziehen

Abhängig von der OpenSSL-Erweiterung

/*加密解密*/
function authcode($string, $operation = 'E') {
  $ssl_public = file_get_contents(DATA_PATH."/conf/cert_public.key");
  $ssl_private = file_get_contents(DATA_PATH."/conf/cert_private.pem");
  $pi_key = openssl_pkey_get_private($ssl_private);//这个函数可用来判断私钥是否是可用的,可用返回资源id Resource id
  $pu_key = openssl_pkey_get_public($ssl_public);//这个函数可用来判断公钥是否是可用的
  if(false == ($pi_key || $pu_key)) return '证书错误';
  $data = "";
  if($operation=='D'){
    openssl_private_decrypt(base64_decode($string),$data,$pi_key);//私钥解密
  }else{
    openssl_public_encrypt($string,$data,$pu_key);//公钥加密
    $data = base64_encode($data);
  }
  return $data;
}
/*生成证书*/
function exportOpenSSLFile(){
  $config = array(
    "digest_alg"    => "sha512",
    "private_key_bits" => 4096,           //字节数  512 1024 2048  4096 等
    "private_key_type" => OPENSSL_KEYTYPE_RSA,   //加密类型
  );
  $res = openssl_pkey_new($config);
  if($res == false) return false;
  openssl_pkey_export($res, $private_key);
  $public_key = openssl_pkey_get_details($res);
  $public_key = $public_key["key"];
  file_put_contents(DATA_PATH."/conf/cert_public.key",$public_key);
  file_put_contents(DATA_PATH."/conf/cert_private.pem",$private_key);
  openssl_free_key($res);
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP verwendet OpenSSL, um Zertifikate zu generieren und Beispielcode zu ver- und entschlüsseln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!