首页 > 编程语言 >C#.NET工行开放平台RSA私钥公钥生成小工具V2024

C#.NET工行开放平台RSA私钥公钥生成小工具V2024

时间:2024-07-25 13:39:32浏览次数:7  
标签:公钥 私钥 string V2024 pem File Path exePath

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

相关文章

  • 使用带有私钥的云前端生成签名 URL 的问题..使用 Python 3.7 为带有空格的 S3 对象生
    我在使用Python3.7为S3对象生成签名URL时遇到问题。具体来说,键中带有空格的对象的URL会导致“访问被拒绝”错误,而没有空格的对象的URL通常工作正常。但是,并非所有不带空格的对象都能正常工作,带空格的对象始终会失败。fromdatetimeimportdatetime,timedeltaimpo......
  • 中望CAD 机械 v2024 解锁版下载与安装教程 (CAD三维制图)
    前言中望CAD机械版是一款国产CAD制图软件,专为机械设计而打造。中望CAD机械版2024中文版拥有丰富的标准零件图库,提供绘图标准规范,并支持定制化需求。其智能注释功能更是一大亮点,通过一个命令即可完成80%的标注工作,极大提高了绘图效率。一、下载地址下载链接:中望CAD机械......
  • AIGC-DynamiCrafter: Animating Open-domain Images with Video Diffusion Priors-ECC
    论文:https://arxiv.org/pdf/2310.12190代码:https://github.com/Doubiiu/DynamiCrafter?tab=readme-ov-fileMOTIVATIONTraditionalimageanimationtechniquesmainlyfocusonanimatingnaturalsceneswithstochasticdynamics(e.g.cloudsandfluid)ordom......
  • (ECCV2024论文解读)GPSFormer: A Global Perception and Local Structure Fitting-based
    目录摘要1、引言2、方法2.1 背景3.2 全局感知模块2.3 局部结构拟合卷积泰勒级数局部结构拟合卷积显式结构引入2.4 GPSFormer点云分类部件分割任务3、实验3.13D形状分类ScanObjectNN数据集上的形状分类ModelNet40数据集上的形状分类3.2部件分割3.3小样本分类3.4消融研究全局感......
  • Java开发新趋势!MyEclipse v2024.1全新首发——支持AI编码协助
    在MyEclipse 2024中,通过Copilot集成提供的AI编码协助,让开发者的生产力提高了近10倍;同时支持Java22,并部署到最新版本的应用服务器(如WildFly和Payara);拥有更高性能的Spring工具支持更流畅的编码体验,而语言服务器更新确保对所有现代web技术的最新语言支持。MyEclipse的现有用户可......
  • X.509、PKCS公钥密码学标准及常见RFC
    X.509:公钥证书的格式标准,应用于包括TLS/SSL在内的众多网络协议;PKCS:即PublicKeyCryptographyStandards-公钥密码学标准。是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的......
  • pyasn1及pyasn1-modules解析DER格式证书、私钥及公钥
    PEM转DERDER格式是证书、私钥、公钥等按ASN.1编码后序列化生成的二进制格式。我们可以从PEM格式中得到DER格式:例如:importbase64#PEM转DER格式defpem2der(pem:bytes)->bytes:returnbase64.b64decode(b''.join(pem.strip().split(b'\n')[1:-1]))#使用方法pem......
  • 证书私钥公钥PEM格式解析
    PEM格式PEM,即PrivacyEnhancedMail,直译为保密邮件,是一种数字证书、私钥、公钥等的文本表示格式。想对应的,DER,即DistinguishedEncodingRules,可分辨编码规则,是一种是一种数字证书、私钥、公钥等二进制表示格式。PEM包含DER格式内容,也可以说是证书/私钥/公钥DER格式的按Bas64编......
  • 高仿imtoken钱包源码/获取助记词/获取私钥/自动归集
    简介:高仿imtoken钱包/获取助记词/获取私钥/自动归集带双端,无纯源码     下载源码 ......
  • 非堆成加密是公私钥使用
    对称加密学习-CSDN博客加密算法学习-CSDN博客非对称加密算法使用一对密钥,包括一个公钥和一个私钥,它们是数学上相关联的,但公钥可以公开分享,而私钥必须保密。以下是使用非对称加密算法的一般步骤:密钥生成:用户首先生成一对密钥,包括一个私钥和一个公钥。私钥必须安全存储,不能......