• 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

  • 相关阅读:
    Linux查看系统资源占用
    覆盖索引有何用?
    Java8新特性
    架构的力量!!2016解密互联网公司架构技术
    作为程序员,如何防辐射?
    Mysql查询正在运行的事务以及杀掉它
    Hbase设计实战
    不可不知的网络知识与工具
    MySQL数据库事务剖析
    dos插入mysql乱码
  • 原文地址:https://www.cnblogs.com/xiangxiong/p/7607594.html
Copyright © 2020-2023  润新知