Я использую GNUPG: http://www.gnupg.org/
Вам понадобится доступ к вашему веб-серверу, чтобы установить его или, если он установлен, добавить свой брелок.
Тогда вы можете использоватьэто с помощью вызова exec или расширения GNUPG PECL.
Проблема в том, что пользователь должен создать ключ, используя тот же адрес электронной почты ($ gpgrecipient), который вы используете для его шифрования, и ониДОЛЖНО делать это, ДО того, как вы зашифруете его и загрузите на сервер открытого ключа (что будет делать программное обеспечение).Однако программное обеспечение довольно простое и кроссплатформенное.
Для моего сценария шифрования php я использую:
<?php
//error_reporting(E_ALL);
echo 'GNUPG Test<br /><br />';
putenv("GNUPGHOME=/home/me/.gnupg");
$gpg = '/usr/bin/gpg';
$gpgrecipient = 'ben@mydomain.com';
$plaintext = 'This should be encrypted!!!!';
$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("file", "/usr/home/me/error-output.txt", "a") // stderr is a file to write to
);
$cwd = '/usr/bin/';
$env = array('GNUPGHOME' => '/usr/home/me/.gnupg');
$process = proc_open("gpg --no-auto-check-trustdb -q --auto-key-locate keyserver --no-secmem-warning --lock-never -e -a -r {$gpgrecipient}",
$descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
// $pipes now looks like this:
// 0 => writeable handle connected to child stdin
// 1 => readable handle connected to child stdout
fwrite($pipes[0], $plaintext);
fclose($pipes[0]);
$encrypted = stream_get_contents($pipes[1]);
fclose($pipes[1]);
// It is important that you close any pipes before calling
// proc_close in order to avoid a deadlock
$return_value = proc_close($process);
// echo "\n\n command returned $return_value\n";
$message = "
This is what we should have ideally (Encrypted Emails).
Unencrypted text - name, date of arrival, etc.
This part only Is encrypted and requires a password to view:
{$encrypted}
More Unencrypted text at the end";
mail($mailrecp, 'Encrypted Emails Example', $message);
}
?>
Это только зашифровывает раздел электронной почты, который я получаю с помощьюthunderbird и enigmail.
Вы можете изменить его, чтобы ввести файл и прикрепить его к электронному письму.
Возможно, вы даже найдете приложение barebones gnupg, которое создает ключ и загружает его вобщедоступный сервер, расшифровывает файл и т. д. и т. д.
Если данные действительно конфиденциальны, я думаю, что GnuPG - хороший вариант.
Гораздо лучше, например, обрабатывать онлайн-бронирования.что нужно всего лишь перейти к одному электронному письму, которым вы управляете, чем к тому, что вам нужно, но я подумал, что отправлю это туда.