gpt4 book ai didi

delphi - 如何使用 Synapse 建立安全连接?

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:34 24 4
gpt4 key购买 nike

我正在测试 Synapse,想知道如何建立安全连接。我注意到它支持 SSL,但我不确定它是否适合我的需要。我没有 CA 的证书。我只想加密我的服务器程序和客户端程序之间的所有数据。当然,我可以在发送前自己加密数据。但如果 SSL 可以加密数据,也许我可以直接使用它。据我所知,SSL 用于“加密”和“身份验证”。我需要的只是“加密”。 Synapse 有可能吗?

更新:

感谢 daemon_x 和 Synapse 的作者 Lukas Gebauer 的帮助,我想我终于成功了。这是我所做的:

服务器端:

1) 在您的单元中使用 ssl_openssl 并将 'libeay32.dll' 和 'ssleay32.dll' 放到与 exe 文件相同的目录

2) 接受连接后,为新创建的套接字添加以下代码行。

fclient.SSLAcceptConnection;

客户端:

1) 在您的单元中使用 ssl_openssl 并将 'libeay32.dll' 和 'ssleay32.dll' 放到与 exe 文件相同的目录

2) 连接到服务器后,添加以下行。

fclient.SSLDoConnect;

如果没有错误发生,连接现在是安全的。但是当您运行代码时,如 Synapse 文档中所述,您可能会注意到 SSLAcceptConnection 需要一些时间才能返回。所以如果你想加快速度,你最好预先创建一个证书文件和私钥文件。并在 SSLAcceptConnection 之前添加以下代码

  fclient.SSL.CertificateFile := 'bs-cert';
fclient.SSL.PrivateKeyFile := 'bs-privatekey';

如果您没有证书和私钥,请引用ssl_openssl中的“CreateSelfSignedCert”获取自签名证书和私钥。您可以通过 WriteStrToStream 等方式将 FCertificate 和 FPrivatekey 保存到文件中,并在以后使用它们。

最佳答案

是的;您可以使用 the plugins 之一随 Synapse 一起提供。正如那里也提到的那样,最好的办法是使用 ssl_openssl.pas .如果你决定遵循这个,你将需要除了 Sysapse还有 OpenSSL library .作者推荐OpenSSL 0.9.7但正如他在我们本地论坛上所说,它似乎也适用于 OpenSSL 1.0.0d。

请注意,如果您使用的是 D2009 以上版本,您将需要 Unicode 支持,但该版本并未完全支持。下载latest version相反。

以下示例代码接收前 1024 个字节作为对使用 SSL 加密的安全网站的 HTTP GET 方法的响应。我用过OpenSSL 0.9.8hlatest version of Synapse .请注意,您需要将 OpenSSL 包中的 libssl32.dlllibeay32.dll 放入输出目录,以使其正常工作。让我们有一个带有按钮和备忘录的表单,我们会在其中接收结果。

uses blcksock, synautil, synsock, ssl_openssl, ssl_openssl_lib;

procedure TForm1.Button1Click(Sender: TObject);
var Socket: TTCPBlockSocket;

begin
Socket := TTCPBlockSocket.Create;

try
Socket.Connect('www.yousendit.com', '443'); // connect to the host
Socket.SSLDoConnect; // start SSL connection; only server has a certificate

if Socket.LastError = 0 then
begin
Socket.SendString('GET' + CRLF); // request GET method
Memo1.Text := Socket.RecvBufferStr(1024, 1000); // receive 1024 bytes
end;

finally
Socket.Free;
end;
end;

关于delphi - 如何使用 Synapse 建立安全连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6334141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com