Cryptography 使用GPG加密而不向加密文件添加内容?

Cryptography 使用GPG加密而不向加密文件添加内容?,cryptography,gnupg,encryption-symmetric,Cryptography,Gnupg,Encryption Symmetric,那么,如何避免添加GPG内容呢?我只需要加密的字节 由于AES256是对称的,我想做如下操作: $ echo "helloworld" > text.txt $ cat text.txt helloworld $ gpg --cipher-algo AES256 --symmetric --armor text.txt gpg: gpg-agent is not available in this session $ ls text.txt text.txt.asc $ cat tex

那么,如何避免添加GPG内容呢?我只需要加密的字节

由于AES256是对称的,我想做如下操作:

$ echo "helloworld" > text.txt
$ cat text.txt
helloworld

$ gpg --cipher-algo AES256 --symmetric --armor text.txt
gpg: gpg-agent is not available in this session
$ ls
text.txt text.txt.asc

$ cat text.txt.asc
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

jA0ECQMCnGyzh+mRmpBg0kgBfcqLbdAhLc+xwZDta3/kudi/f6MmjXUzFUbNFr3H
IoXgqzjRqbeNESHd+nFSTxHQc8tXF80vXMdDzTy3HmD6ZWk3BvVx5Vo=
=EviP
-----END PGP MESSAGE-----
因此,如果我是A,并且想向我的朋友B发送“sometext”:

  • 我发送“sometext”加密的GPG与密钥给我的朋友
  • 他还给我发了他用钥匙加密的文本
  • 我用我的钥匙解密,然后寄给他
  • 他应该应用keyB键并获取“sometext”
    如果我将gpg与AES和我的朋友一起使用另一个软件或另一个对称算法,而不知道我的密钥,这应该是可能的。但这只有在gpg(或他的软件)不向加密文件添加内容的情况下才有可能。我只想应用AES算法,这样我就可以用同一个密钥加密多次并得到原始密钥

    您可能希望使用openssl而不是gnupg。例如:

    1. Apply AES with keyA to "file_original.txt" and produce "file_keyA.txt"
    2. Apply AES with keyB to "file_keyA.txt" and get "file_keyA_keyB.txt"
    3. Apply AES with keyA to "file_keyA_keyB.txt" and get "file_keyB.txt"
    4. Apply AES with keyB to "file_keyB" and get "file_original.txt"
    

    手册页上的更多信息:

    您可能希望使用openssl而不是gnupg。例如:

    1. Apply AES with keyA to "file_original.txt" and produce "file_keyA.txt"
    2. Apply AES with keyB to "file_keyA.txt" and get "file_keyA_keyB.txt"
    3. Apply AES with keyA to "file_keyA_keyB.txt" and get "file_keyB.txt"
    4. Apply AES with keyB to "file_keyB" and get "file_original.txt"
    

    主页上的更多信息:

    如果您希望使用gpg向朋友发送加密消息,而不共享用于解密消息的密码短语,那么您可能希望使用非对称加密。要做到这一点,您和您的朋友都需要使用生成PGP密钥

    openssl enc -aes128 -salt -in yyy -out yyy.enc
    
    然后交换你的公钥

    gpg --gen-key
    
    在你的朋友收到消息后,他们需要用

    gpg -e -a -u "my key" -r "their key" --sign -o somefile.txt.gpg somefile.txt
    
    他们得到了信息。GnuPG将生成一个强密钥,使用该密钥加密消息,然后使用您朋友的密钥加密该密钥并将其附加到文件。它还将使用您的私钥对文件进行签名,这样您的朋友就可以(合理地)确定文件在传输过程中没有被篡改。在本例中,您可以使用

    gpg -d -o somefile.txt somefile.txt.gpg
    
    gpg——列出键
    
    在-r“他们的密钥”部分的引号中查找他们的密钥句柄(它是“rsa4096/”之后和创建日期之前的位),以及

    gpg --list-keys <or gpg -k>
    
    gpg——列出密钥
    
    要找到钥匙的把手,请在-u“我的钥匙”部分使用


    如果您真的希望使用对称加密并与朋友共享密码短语,那么我还建议使用openssl,如@pchris建议的那样。

    如果您希望使用gpg向朋友发送加密消息,而不共享用于解密消息的密码短语,那么您可能需要使用非对称加密。要做到这一点,您和您的朋友都需要使用生成PGP密钥

    openssl enc -aes128 -salt -in yyy -out yyy.enc
    
    然后交换你的公钥

    gpg --gen-key
    
    在你的朋友收到消息后,他们需要用

    gpg -e -a -u "my key" -r "their key" --sign -o somefile.txt.gpg somefile.txt
    
    他们得到了信息。GnuPG将生成一个强密钥,使用该密钥加密消息,然后使用您朋友的密钥加密该密钥并将其附加到文件。它还将使用您的私钥对文件进行签名,这样您的朋友就可以(合理地)确定文件在传输过程中没有被篡改。在本例中,您可以使用

    gpg -d -o somefile.txt somefile.txt.gpg
    
    gpg——列出键
    
    在-r“他们的密钥”部分的引号中查找他们的密钥句柄(它是“rsa4096/”之后和创建日期之前的位),以及

    gpg --list-keys <or gpg -k>
    
    gpg——列出密钥
    
    要找到钥匙的把手,请在-u“我的钥匙”部分使用

    如果您真的希望使用对称加密并与您的朋友共享密码短语,那么我也建议您使用openssl,就像@pchris建议的那样。

    您在谈论什么“东西”?您在谈论什么“东西”?