C#.NET工行开放平台RSA私钥公钥生成小工具V2024
开发环境:
.NET FRAMEWORK 4.0
rsatool.exe,来自于工行开发文档。
主要代码:
string thisAppPath = Application.StartupPath; string exePath = Path.Combine(thisAppPath, "tools"); string exeFullName = Path.Combine(exePath, "rsatool.exe"); if (!File.Exists(exeFullName)) { MessageBox.Show("文件不存在:" + exeFullName); return; } STARTGEN: //参数顺序:消息,朗读者index StringBuilder args = new StringBuilder(); args.Append(" keygen"); //keygen 前边有空格 ProcessStartInfo psi = new ProcessStartInfo(exeFullName, args.ToString()); psi.CreateNoWindow = true;//不显示控制台窗口 psi.UseShellExecute = false;//不显示控制台窗口 psi.WorkingDirectory = exePath; Process _viceProcess = new Process(); _viceProcess.StartInfo = psi; _viceProcess.Start(); System.Threading.Thread.Sleep(3000);//防止 EXE没执行完 string priKeyFullName = Path.Combine(exePath, "private.pem"); string pubKeyFullName = Path.Combine(exePath, "public.pem"); if (!File.Exists(priKeyFullName) || !File.Exists(pubKeyFullName)) { MessageBox.Show("私钥或公钥文件未生成成功:" + priKeyFullName); return; } //复制一份 string filePrefix = DateTime.Now.ToString("yyyyMMddHHmmssfff-"); string priKeyFullName2 = Path.Combine(exePath, filePrefix + "private.pem"); string pubKeyFullName2 = Path.Combine(exePath, filePrefix + "public.pem"); File.Copy(priKeyFullName, priKeyFullName2); File.Copy(pubKeyFullName, pubKeyFullName2); //校验PKCS8是否能过 string priKeyText = File.ReadAllText(priKeyFullName2); if (!CheckPkcs8(priKeyText)) { GLog.WLog("PKCS8 私钥不能解析,准备重新生成。\r\n"+ priKeyText); goto STARTGEN; } txtPriFullName.Text = priKeyFullName2; txtPubFullName.Text = pubKeyFullName2; string pubKeyText = File.ReadAllText(pubKeyFullName2); txtPriKey.Text = priKeyText; txtPubKey.Text = pubKeyText; MessageBox.Show("生成成功!请保存好生成的文件。");
简要解析
1.调用 rsatool.exe 生成私钥和公钥。
2.将private.pem和public.pem 复制一份。
3.检查PKCS8的私钥是否能被.NET解析。
不能解析,则重新生成一份。
4.将文件路径 ,文本内容显示在界面 。
标签:公钥,私钥,string,V2024,pem,File,Path,exePath From: https://www.cnblogs.com/runliuv/p/18322827