Мне нужно закончить эту часть школьного проекта.
Создать openssl открытый и закрытый ключ
function openssl($text){
# privaten Schlüssel erzeugen
$res=openssl_pkey_new();
# privaten Schlüssel zu String
openssl_pkey_export($res, $privatekey);
# öffentlichen Schlü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);
}
function createFile($crypttext, $filename){
file_put_contents($filename, $crypttext.PHP_EOL , FILE_APPEND | LOCK_EX);
}
function downloadZip($files){
$zipname = "packet.zip";
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file){
$zip->addFile($file);
}
$zip->close();
foreach ($files as $file) {
unlink($file);
}
header("Location: download.php?filename=$zipname");
}
Я загружаю свои 2 файла crypttext.txt и privatekey.txt в формате zip.Позже я хочу загрузить их.
Зашифровано
Privatekey
А следующий код - моя функция дешифрования
<div class="container">
<br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>Encrypted Text</label>
<textarea name="encrypted_text" placeholder="Text einfügen" class="form-control" rows="3"></textarea>
<label>Private Key </label>
<textarea name="private_key" placeholder="Text einfügen" class="form-control" rows="3"></textarea>
<br>
<button type="submit" class="btn btn-primary">Hochladen</button>
</form>
<?php
if(isset($_POST['encrypted_text'], $_POST['private_key'])){
echo 'isset';
$encrypted = $_POST['encrypted_text'];
$privatekey = $_POST['private_key'];
$res = openssl_get_privatekey($privatekey);
openssl_private_decrypt($encrypted, $decrypted, $res);
echo '<br>';
echo $decrypted;
echo '<br>';
}
?>
Я не получил результата.Где моя ошибка?