coreldrawx7序列号(coreldra7免费破解版)
路遥工具箱今日新增以下功能:
RSA 密钥生成
RSA 格式转换
不同于其他工具 ,路遥工具箱的 RSA 密钥工具为 .NET 开发人员提供了更为强力的支撑 。
路遥工具箱 RSA 工具集的特点
路遥工具箱是一个客户端应用,其绝大部分功能都是无需联网的,RSA 工具集也包含在内。所有的数据都在本机处理,保证不会经由网络泄漏。
RSA 密钥生成功能支持 512、1024 、2048、4096 三种长度的密钥生成 ,除了提供常规的 PKCS#1 和 PKCS#8 格式之外,还支持了 .NET 平台特有的 XML 格式导出:
路遥工具箱的 RSA 密钥生成功能
RSA 密钥转换功能支持将 PKCS#1、PKCS#8 和 XML 格式的私钥进行格式转换,并支持公钥提取功能(也支持提取 XML 格式的公钥)。
路遥工具箱的 RSA 格式转换功能 如何使用 C# 识别私钥的格式
判断私钥是否为 XML 格式 ,仅需要检查私钥开头是否为 <RSAKeyValue> 即可 。PEM 格式的私钥需要对私钥内容掐头去尾,只保留中间的 BASE64 部分内容。
要判断一个私钥是 PKCS#1 还是 PKCS#8 格式,需要将 BASE64 解码为二进制后查看其第 8 个字节。如果该字节的取值是 0x30 则代表这是一个 PKCS#8 格式的私钥 ,如果是 0x02 则代表格式为 PKCS#1 。实现代码如下:
publicstaticRSA CreateRsa( stringkey )
{
if( string.IsNullOrWhiteSpace(key)) thrownewException( "私钥不能为空");
//<RSAKeyValue>
varrsa = RSA.Create;
if(key.StartsWith( "<RSAKeyValue>"))
{
rsa.FromXmlString(key);
}
else
{
if(Regex.IsMatch(key, @"^[-]+BEGIN"))
{
key = Regex.Match(key, @"(?<=KEY[-]+[\r\n]+)[\s\S]+(?=[\r\n]+[-]+END)").Value;
key = Regex.Replace(key, @"[\r\n]+", string.Empty);
}
varbytes = Convert.FromBase64String(key);
if(bytes.Length < 8) thrownewException( "私钥长度过短");
switch(bytes[ 7])
{
case0x30: //PKCS8
rsa.ImportPkcs8PrivateKey(bytes, out_);
break;
case0x02: //PKCS1
rsa.ImportRSAPrivateKey(bytes, out_);
break;
default: thrownewException( "仅支持 PKCS#1 和 PKCS#8 格式的 RSA 私钥。");
}
}
returnrsa;
}
以上代码需要在 .NET Standard 2.1 框架以上运行。
下载路遥工具箱
路遥工具箱下载地址:https://www.coderbusy.com/luyao-toolkit