PGP/GPG z tego co wiem, nie służą do tworzenia haseł, ale do szyfrowania. Za pomocą kluczy. Tworzona jest para kluczy: klucz prywatny (chroniony hasłem) i klucz publiczny. Klucze te powiązane są z twoim adresem e-mail (lub JabberID na przykład).
Powiązanie z adresem e-mail i nazwisko użytkownika służą tylko temu, aby innym, było łatwiej zarządzać kluczami. Aby mogli w swoim programie wyświetlić, że klucz:
pub 1024D/C27E20F1 2007-09-11
uid Marcin Badurowicz <[email protected]>
sub 1024g/972516F0 2007-09-11
sub 4096g/C6A1FAD6 2009-11-22
należy do danej osoby, a nie musieli zgadywać "a czyj u licha jest klucz C27E20F1?" (plus możliwe jest automatyczne szyfrowanie e-maila jego kluczem publicznym, na podstawie adresu odbiorcy po prostu). Plus łatwiej jest się użytkownikowi posługiwać identyfikatorem adresu e-mail, a nie identyfikatorem klucza (patrz dalej).
Zasadniczo w twojej sytuacji dane podawane przy kluczach nie mają znaczenia - ale PGP ma nieco inne zastosowania (ogólnie - ochrona poczty elektronicznej). Zachęcam do zapoznania się, może do używania, w zależności od stopnia paranoi :-)
Hasło klucza prywatnego służy do tego, by zabezpieczyć go. Nie zaszyfrujesz/odszyfrujesz niczego, dopóki nie znasz hasła klucza prywatnego. Dodatkowe zabezpieczenie na wypadek "wycieku" klucza prywatnego. Gdy taki klucz zostanie zgubiony, a nie ma hasła, ktoś może bez problemów czytać zaszyfrowaną Twoim kluczem publicznym korespondencję. Z wymaganiem hasła - ma dodatkowy problem.
Co do Twojej aplikacji - można wygenerować sobie klucz prywatny i publiczny, a następnie na serwerze szyfrować backup kluczem publicznym na przykład przez wywołanie odpowiedniego polecenia gpg z parametrami:
echo test | gpg -e -r [email protected] --armor > test.txt
generuje
-----BEGIN PGP MESSAGE----[ciach]
Version: GnuPG v1.4.9 (MingW32)
hQQOA7/FV0vGofrWEA//bVorNuEQm1VnVhYjqB2v9BWZlz8+0UYTOb5srPVaQhip
[ciach]
-----END PGP MESSAGE-----
które po rozszyfrowaniu (gpg -d test.txt) daje "test" który został wysłany przez echo. Po wpisaniu hasła klucza prywatnego oczywiście ;-)
Pod Linuksem szyfrowanie pliku możesz zrealizować przez wysłanie go do procesu PGP/GPG poleceniem cat. Nie wymaga to w ogóle interwencji użytkownika. --armor dodany tylko dla większej czytelności końcowego wyniku, nie jest niezbędny.