"UPDATE klant SET Voorletters=:voorletters, Tussenvoegsel=:tussenvoegsel, Achternaam=:achternaam, Adres=:adres, Postcode=:postcode, Woonplaats=:woonplaats
WHERE Gebruikersnaam = '$Gebruikersnaam'";
Вам не хватает кавычек в предложении WHERE
. Вы должны использовать подготовленный оператор для этого, потому что ваш код открыт для внедрения SQL.
Вы - логика, является правильным.
Типичное шифрование PKI:
cryptoAlgorithm(plaintext, public key) = ciphertext
cryptoAlgorithm(ciphertext, private key) = plaintext
Для некоторых алгоритмов алгоритм шифрования является той же процедурой, отправляя и получая.
Так... для каждого получателя Вам нужен их цифровой сертификат, который будет содержать их открытый ключ.
Устройство хранения данных сертификата GAL
Я думал бы, что будет возможно настроить GAL, чтобы позволить пользователям публиковать сертификаты. Мое общее впечатление - то, что то, как GAL настраивается и используется, варьируется от компании до компании.
S/MIME И PGP
Я соглашаюсь с сообщением, что S/MIME - то, что Вы хотите для Outlook.
Также отметьте - если Ваши пользователи будут использовать сеть Outlook, а не клиент Outlook, то они не смогут получить зашифрованные электронные письма. По крайней мере, по состоянию на 2000, но я подозреваю 2003 также. Это - огромная проблема удобства использования, и у меня нет хорошего обходного решения.
Генерал Microsoftyness
Microsoft имеет их собственный специальный способ сделать вещи (никакое ребячество...). Они не отличаются в мире PKI. Пользовательские сертификаты должны быть ясно отмечены с возможностью шифрования. Я знаю, что это должно иметь поле KeyUsage KeyEncipherment. И может быть еще одно расширение, требуемое Microsoft. Наличие неправильно отформатированного пользовательского сертификата могло означать, что получатель будет не мочь считать почту, когда это прибудет, потому что Outlook не договорится о том, что почта была зашифрована. Сэкономьте некоторое серьезное время интеграционного тестирования здесь и запланируйте поразить много групп пользователей о том, как сделать это. Каждый раз моя команда должна была интегрироваться с продуктом Microsoft, были противные неожиданности, особенно относительно того, как сертификат настроен.
Libraries & Tools
Я второй рекомендация для BouncyCastle - я не использовал его, но люди, которым я доверяю, клянутся им. Я лично любил инструментарий Phaos, когда я должен был записать этот материал, но я устарел. Я знаю, что это стоило серьезных денег и может быть слишком большим количеством удара для Вашего маркера.
OpenSSL является другим невероятным инструментом, и полезный для намного больше, чем SSL. Это является большим для генерации свидетельств об испытании, но я не могу помнить, делает ли это почтовое шифрование S/MIME также.
Для большинства библиотек необходимо смочь взять простой текст и сертификат, и поместить обоих в функцию, которая генерирует сообщение S/MIME. Они могут потребовать алгоритма шифрования также.
Необходимо отправить зашифрованную почту в Outlook в s/mime формате. Outlook не поддерживает PGP.
Запустите путем попытки отправить сообщение простого текста от Java и видеть, можно ли получить его в Outlook. Беспокойство о шифровании позже. Пользуйтесь библиотекой JavaMail, чтобы создать и послать электронные письма.
Я не знаю, как извлечь ключи из GAL. Является, вероятно, самым легким начаться путем экспорта ключа вручную и видеть, можно ли работать с ним.
Для создания зашифрованных писем в s/mime формате, я рекомендую замок Bouncy. Бодрый Замок является crypto-поставщиком, который также имеет поддержку s/mime. (Ищите пакет CMS/Smime). В загруженных источниках должны быть некоторые примеры. Я использовал его в прошлом для отправки электронных писем огромному количеству почтовых клиентов, включая Outlook, и это работает вполне прилично. Но заключитесь в фигурные скобки к материалу crypto - это может быть крутая кривая обучения!
В общем случае: чтобы отправить зашифрованное сообщение кому-то, Вам только нужен их открытый ключ. У Вас не должно быть ключа самих. Правило с асимметричным crypto - то, что шифруется с открытым ключом, может быть дешифрован с соответствующим закрытым ключом, и независимо от того, что шифруется с закрытым ключом, может быть дешифрован с соответствующим открытым ключом.
Вам будет нужен ключ для Вашего сервера, только если Вы хотите подписать сообщение.
Если Вы хотите сделать реализацию в Java, я не думаю, что JavaMail поддерживает шифрование из поля, но можно взглянуть на JavaMail-Crypto (не использовали его сам). Существует, предположительно, интерфейс JNI к GnuPG где-нибудь... И Вы всегда можете должностное лицо PGP или GnuPG с любого языка...
Я не знаю о поддержке PGP в Outlook, ни чем-либо еще о Outlook.
Протест, не отмеченный предыдущий, состоит в том, что GAL находится не обязательно на Exchange Server, и более часто находится на Доменном сервере, если не выполняется в автономном режиме. Сертификат будет найден в userCertificate атрибута LDAP или userSMIMECertificate.