我需要完成学校项目的这一部分。
创建openssl公钥和私钥
函数openssl($ text){
#privatenSchlüsselerzeugen
$ res = openssl_pkey_new();
#privatenSchlüsselzu字符串
openssl_pkey_export($ res,$ privatekey);
#öffentlichenSchlüssel
$ publickey = openssl_pkey_get_details($ res);
$ publickey = $ publickey [“ key”];
openssl_public_encrypt($ text,$ crypttext,$ publickey);
$ filenameCrypttext =“ crypttext.txt”;
$ filenamePrivatekeyText =“ privatekey.txt”;
$ files = [$ filenameCrypttext,$ filenamePrivatekeyText];
createFile($ crypttext,$ filenameCrypttext);
createFile($ privatekey,$ filenamePrivatekeyText);
downloadZip($ files);
}
函数createFile($ crypttext,$ filename){
file_put_contents($ filename,$ crypttext.PHP_EOL,FILE_APPEND | LOCK_EX);
}
函数downloadZip($ files){
$ zipname =“ packet.zip”;
$ zip =新的ZipArchive;
$ zip-> open($ zipname,ZipArchive :: CREATE);
foreach(将$ files作为$ file){
$ zip-> addFile($ file);
}
$ zip-> close();
foreach($ files as $ file){
unlink($ file);
}
header(“ Location:download.php?filename = $ zipname”);
}
我将2个文件crypttext.txt和privatekey.txt下载为zip。以后我想上传它们。
加密的
私钥
以下代码是我的解密功能
<?php
if(isset($ _ POST ['encrypted_text'],$ _POST ['private_key'])){
回声“ isset”;
$ encrypted = $ _POST ['encrypted_text'];
$ privatekey = $ _POST ['private_key'];
$ res = openssl_get_privatekey($ privatekey);
openssl_private_decrypt($ encrypted,$ decrypted,$ res);
回声'
';
回声$解密;
回声'
';
}
?>
我没有结果。
我的错在哪里?