open_vPGPv

加密

 // create an instance of the library
            PGPLib pgp = new PGPLib();

            // Import the main company public key
            pgp.AddMasterKey(@"xx.asc");

            // after the encryption the output file will be encrypted with two keys
            pgp.EncryptFile(@"input.txt", @"xx.asc", @"input.txt.pgp");
            MessageBox.Show("杀杀杀");

解密

  // initialize the library
            PGPLib pgp = new PGPLib();

            string inputFileLocation = @"input.txt.pgp";
            string privateKeyLocation = @"pv.asc";
            string privateKeyPassword = "6446-";
            string decryptedOutput = @"input2.txt";


            try
            {
                string originalFileName =
                  pgp.DecryptFile(inputFileLocation,
                              privateKeyLocation,
                              privateKeyPassword,
                              decryptedOutput);

                Console.WriteLine("File decrypted to :" + decryptedOutput);
                Console.WriteLine("The original file name of the decrypted file was :" + originalFileName);
            }
            catch (PGPException e)
            {
                if (e is NonPGPDataException)
                {
                    Console.WriteLine("The input file is not an OpenPGP archive or is corrupted");
                }
                else if (e is WrongPrivateKeyException)
                {
                    // The message cannot be decrypted with this private key 
                    // or the supplied private key is not an OpenPGP private key or is corrupted
                    Console.WriteLine(e.Message);
                }
                else if (e is WrongPasswordException)
                {
                    Console.WriteLine("The password for the private key is incorrect");
                }
                else if (e is FileIsPBEEncryptedException)
                {
                    Console.WriteLine("The input file is password encrypted.");
                    Console.WriteLine("You have to use DecryptAndVeifyFilePBE or DecryptAndVerifyStreamPBE");
                }
                else if (e is IntegrityCheckException)
                {
                    Console.WriteLine("The encrypted data is corrupted");
                }
                else
                {
                    Console.WriteLine(e.Message);
                }
            }

EnryptFileToExe

         // initialize the SFX generator class
            SfxCreator sfx = new SfxCreator();

            // encrypt the data file and create an executable
            sfx.EnryptFileToExe(@"input2.txt", "644611", @"input2.exe");

key.store

// initialize the KeyStore
            // If the keystore file does not exists, it is created.
            KeyStore ks = new KeyStore(@"key.store", "changeit");

            String userId = "support@didisoft.com";
            if (!ks.ContainsKey(userId))
            {
                // Generate RSA based OpenPGP key with predefined parameters; 
                // for more customized generation see GenerateKeypairRSA.cs
                // (Note: the predefined key parameters here are the same as in PGP Desktop version 10) 
                ks.GenerateKeyPair(2048, "support@didisoft.com", "changeit");
            }
            ks.ExportPublicKey("mypb.txt", userId, true);
            ks.ExportPrivateKey("mypv.txt", userId, true);
            MessageBox.Show("ok");

  // create an instance of the library
            PGPLib pgp = new PGPLib();

            // Import the main company public key
           // pgp.AddMasterKey(@"xx.asc");

            // after the encryption the output file will be encrypted with two keys
            pgp.EncryptFile(@"input.txt", @"mypb.txt", @"input_ks.txt.pgp");
            MessageBox.Show("杀杀杀");

 // create an instance of the library
            PGPLib pgp = new PGPLib();

           
            //pgp.DecryptFile(@"input_ks.txt.pgp", @"mypv.txt", "changeit", @"input_ks.txt");

            KeyStore ks = new KeyStore(@"key.store", "changeit");
            pgp.DecryptFile(@"input_ks.txt.pgp",ks, "changeit", @"input_ks.txt");
            MessageBox.Show("杀杀杀");

  

OpenPGP Library v.1.7
http://www.winsite.com/Development/Components-Libraries/OpenPGP-Library-for-NET/

http://bbs.csdn.net/topics/390267637
Bin】下的【BouncyCastle.CryptoExt.dll】和【DidiSoft.Pgp.dll】引用到项目中,就可以很方便的在C#中使用PGP加解密了。
 

https://www.didisoft.com/net-openpgp/examples/decrypt-and-verify/
https://www.didisoft.com/net-openpgp/

https://www.componentsource.com/product/openpgp-library-for-dotnet

http://www.pgp.cn/index.htm

原文地址:https://www.cnblogs.com/xiangxiong/p/7607594.html