$ gpg -e mysecretfile
You did not specify a user ID. (you may use "-r")
Current recipients:
Enter the user ID. End with an empty line: ben
Current recipients:
2048g/52FFA1E 2009-01-02 "Bob McBlah <[email protected]>"
Enter the user ID. End with an empty line:
$ ls *.gpg
mysecretfile.gpg
O arquivo mysecretfile.gpg
agora é criptografado, de tal forma que somente a pessoa (Bob McBlah) pode descriptografar o arquivo (assimétrico ou criptografia de chave pública ).
O arquivo pode ser enviado com segurança usando qualquer meio capaz de enviar um arquivo (netcat, email, FTP, dropbox, mediafire.com etc etc), praticamente sem risco de interceptação.
Se você usar o sinalizador -a
"armadura ASCII", o arquivo criptografado (que seria denominado mysecretfile.asc
) é um texto ASCII simples, que pode ser enviado em qualquer meio que possa enviar texto ASCII, portanto, respostas a qualquer outra pergunta "como posso enviar um arquivo x MB" seria aplicável ..
Para uma solução para seu problema específico, talvez um script Python simples possa ser escrito usando o módulo BaseHTTPServer:
import sys
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
thefile = None
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
global thefile
try:
if self.path == "/":
f = open(thefile)
self.send_response(200)
self.send_header('Content-type', 'application/x-gpg')
self.send_header('Content-disposition', 'filename="%s"' % thefile.replace("\"", ""))
self.end_headers()
self.wfile.write(f.read())
f.close()
else:
self.send_error(404, 'File not found: %s' % self.path)
except IOError:
self.send_error(404,'File Not Found: %s' % self.path)
def main():
global thefile
if len(sys.argv) == 2:
thefile = sys.argv[1]
else:
print "Usage: %s [path to served file]" % sys.argv[0]
sys.exit(1)
try:
server = HTTPServer(('', 8080), MyHandler())
print 'Started server on port 8080'
server.serve_forever()
except KeyboardInterrupt:
print 'Keyboard abort, shutting down server'
server.socket.close()
if __name__ == '__main__':
main()
Salve como servefile.py
e execute como python servefile.py /path/to/my/file.gpg
O código acima não é exatamente ótimo, mas deve ser bom para transferências únicas.