gpt4 book ai didi

vb.net - 有什么办法可以PGP加密数据流并直接保存到FTP而不需要保存在本地吗?

转载 作者:行者123 更新时间:2023-12-02 07:08:45 26 4
gpt4 key购买 nike

我必须通过 sFTP 将 PGP 加密文件以 asc 格式发送到 FTP 文件夹。有没有办法对 PGP 加密流(CSV 格式的流)并将其推送到 sFTP 而无需将其保存在本地计算机

下面是我用于 PGP 加密的函数,它将文件名作为参数:

Private Function PGPEncrypt(ByVal FileName As String) As Boolean
Dim errorHappened As Boolean = False
Dim encodedFileName As String = String.Format("{0}{1}", FileName, ".asc")
Dim pgpRecipient As String = System.Configuration.ConfigurationManager.AppSettings.Get("PgpRecipient")
Dim psi As System.Diagnostics.ProcessStartInfo
Dim ErrorResult As String = ""
Dim Result As String = ""
Try
psi = New ProcessStartInfo(System.Configuration.ConfigurationManager.AppSettings.Get("PgpPath"))
psi.CreateNoWindow = True
psi.UseShellExecute = False
psi.Arguments = String.Format(" --armor --yes --recipient ""{0}"" --output ""{1}"" --encrypt ""{2}""", _
pgpRecipient, encodedFileName, FileName)
psi.RedirectStandardInput = True
psi.RedirectStandardOutput = True
psi.RedirectStandardError = True
ProcessPGP = System.Diagnostics.Process.Start(psi)
ProcessPGP.StandardInput.Write(m_Passphrase)
Result = ProcessPGP.StandardError.ReadToEnd()
ProcessPGP.WaitForExit()
Catch ex As Exception
errorHappened = True
Dim ReadError As New StringBuilder()
ReadError.Append(vbCrLf & "Error Detail:")
ReadError.Append(vbCrLf & ex.ToString())
OurEventLog.WriteEntry(ReadError.ToString(), EventLogEntryType.Error)
End Try
Return errorHappened
End Function

同样,主要要求是将PGP加密文件保存在本地然后发送到FTP,但PGP加密文件必须通过流创建。

有什么想法吗?

更新:

FTP 代码:

 ftp.ConnectMode = FTPConnectMode.PASV
ftp.RemoteHost = Csla.ConfigurationManager.AppSettings("FTPRemoteHost")
If _blnDiagnostics Then DiagnosticsManager.Publish("STREAM_TO_FTP: CONNECT TO FTP", DiagnosticsManager.EntryType.SuccessAudit)
ftp.Connect()
ftp.Login(strUser, strPassword)
ftp.TransferType = FTPTransferType.BINARY 'ASCII
ftp.Put(OUTBOUNDMESSAGE, pFilename)

ftp.Quit()
ftp = Nothing

OUTBOUNDMESSAGE 是 System.IO.Stream。

最佳答案

您可以将 - 传递给 --output ,而不是将文件名作为命令行上的选项,从而直接将输出公开到控制台。您可以直接传输此数据。

您的 Arguments 属性将如下所示:

psi.Arguments = String.Format(" --armor --yes --recipient ""{0}"" --output - --encrypt ""{1}""", _
pgpRecipient, FileName)

当您执行该流程时,ProcessPGP.StandardOutput 应该会产生您需要的流。

关于vb.net - 有什么办法可以PGP加密数据流并直接保存到FTP而不需要保存在本地吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15160995/

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