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); }
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!