C#调用GPG命令进行加密解密文件操作

public void GPG()
{
string password = "1234567890";

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("cmd.exe");
psi.CreateNoWindow = true;
psi.UseShellExecute = false;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;

psi.WorkingDirectory = @"D:\sofe\GnuPG";
System.Diagnostics.Process process = System.Diagnostics.Process.Start(psi);

//解密
string sCommandLine = @"gpg --passphrase 1234567890 --output C:\Users\LWP\Desktop\cc.txt --decrypt C:\Users\LWP\Desktop\cc.txt.gpg";

//加密
//string sCommandLine = @"gpg -r liwenping -e C:\Users\LWP\Desktop\cc.txt";

process.StandardInput.WriteLine(sCommandLine);

process.StandardInput.Flush();
process.StandardInput.Close();

process.WaitForExit();

string result = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.Close();
process.Dispose();
}

//使用前先安装好GPG

//注 本人密钥和私钥尚未上传过,请另行注册

//参考  http://blog.csdn.net/puppylpg/article/details/50901779

时间: 2024-08-30 03:06:31

C#调用GPG命令进行加密解密文件操作的相关文章

JNI调用c++实现AES加密解密

最近项目中用到数据加密解密的功能,由于Android.iOS以及服务器端都需要用到这个功能.而不同平台上加密出来的密文是不一样的,这样导致互相之间密文无法使用.于是决定使用C/C++完成加密解密,其他平台调用的方式进行处理. 加密解密实现 AES加密的具体实现过程本文暂不讨论,实现代码是直接从openssl源码中抽出来. 加密解密调用以下两个方法: int aes_encrypt(char * in, char* key, char * out) 加密//明文,密钥,密文 int aes_dec

base64加密解密文件

1 //字符串加密 2 -(void)demo1 { 3 //普通的 8 bit二进制数据 4 NSString *str = @"hello world!"; 5 //将字符串转换成二进制数据 6 NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; 7 8 //base64 加密后的二进制数据 9 NSData *base64Data = [data base64EncodedDataWithOptions:0];

C++调用openssl实现DES加密解密cbc模式 zeropadding填充方式 pkcs5padding填充方式 pkcs7padding填充方式

============================================== des   cbc  加密 zeropadding填充方式 ============================================== //加密 cbc zeropadding 自己实现 std::string des_cbc_zero_encrypt(const std::string &clearText, const std::string &key) { static u

仿射密码加密解密文件流

#include<iostream> #include<string> #include<fstream> #include<Windows.h> using namespace std; class PWoper { string inpatch; string outpatch; public: PWoper(string in, string out) { inpatch = in; outpatch = out; } void encrypt() {

Linux命令之目录和文件操作

1 pwd:显示当前工作目录 [[email protected] ~]# pwd /root 2 cd:切换当前工作目录 [[email protected] /]# cd                   #切换到当前用户的家目录 [[email protected] ~]# cd ..                #切换到当前目录的上一级目录 [[email protected] /]# cd -                 #返回至前一个目录 3 ls:显示目录和文件信息 选项:

linux下的加密解密学习

linux下的加密解密学习 加密/解密:        加密协议:加密解密使用同一秘钥:3des,aes        公钥加密:公钥私钥对        数字签名,密钥交换                RSA,DSA数据签名算法(DSS数据签名标准) 单向加密:            md5,sha1,sha256,sh512(MD5输出128bit,SHA1输出160bit,SHA256输出256bit) 密钥交换:            DH:Deffie-Hellman 具体过程参照下

linux下加密解密之OpenSSL

一.为什么要加密 在网络这个大森林里面,所有的数据传输都是不安全的,在数据传输中必须要给数据加密,以防止被别人劫持盗取 二.数据在网络中怎么传输 数据从发送出去到目的地都经过了哪些步骤? 1.ISO国际标准组织定义了数据在网络传输中的七层模型:数据从 应用层--会话层--表达层--传输层--网络层--数据链路层--物理层 逐层封装传输,数据到达最底层后传送出去,到达目标主机后在从底层往上层传输并逐层解压封装. 2.在TCP/IP定义的四层模型里,数据传输也是一样的道理,应用层--传输层--网络层

Linux之加密解密基础技术

下文主要介绍了什么是加密解密:为何要用到加密解密技术:加密解密技术能够为我们带来什么样的好处:常见的几种加密解密技术介绍以及Linux中的openssl. 一.什么是加密,解密 加密技术是一种常用的安全保密手段,利用各种技术手段把重要的数据进行加密传送:再用对应的技术手段进行解封,该过程的逆过程就称为解密.这里用一个不太恰当的例子说一下:也就好比你去办一张银行卡,需要你设置一个密码,就可以理解成在为这张银行卡做一个加密的操作:用银行卡到提款机取钱需要你输入密码,这就是一个解密的操作. 二.为什么

Android RSA加密解密

概述 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困 难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥.公钥是可发布的供任何人使用,私钥则为自己所有,供解密之用.关于RSA其它需要了解的知识,参考维基百科:http://zh.wikipedia.org/zh-cn/RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95 在项目开发中对于一些比较敏感