开源工具 DotnetRSA 快速生成和转换RSA秘钥

一.简介

DotnetRSA 是一个利用 .NET Core 2.1 开发的 .NET Global Tool,是可以想npm全局安装一样,安装在你的系统中,只需敲一行命令便可以快速生成RSA加密算法所需的秘钥,目前支持三种格式的秘钥,分别为:xml、pkcs1、pkcs8。它还支持三种格式秘钥的相互转换。

二.安装

使用 DotnetRSA 需要你的系统具备.NET Core >=2.1 的环境,若没有请访问官网,按照提示进行安装:https://www.microsoft.com/net/learn/get-started/windows

输入一句命令便可以安装:

dotnet tool install -g dotnetrsa

安装成功会有如下提示:

同时输入命令 dotnetrsa 会出现如下提示:

三.使用

1.生成秘钥

生成秘钥使用命令 dontetrsa gen,加入 -h 获取帮助:

Generate xml, pkcs1, pkcs8 keys.

Usage: dotnetrsa gen [options]

Options:
  -h|--help           Show help information
  -f|--format         Required.Gen keys's format.The value must be xml, pkcs1 ,pkcs8.
  -s|--size <int>     Key Size.Default 2048.
  --pem               Pem Format. true of false.Default false.
  -o|--output <path>  File output path.If you do not specify it will be output in the current directory.

-f 或者 --format:指需要生成的格式,可以为 xml、pkcs1、pkcs8

-s 或者 --size :指需要生成的秘钥长度,默认为2048

--pem :只是否带有pem格式,值为 true 或者 false,默认为 false

-o 或者 --output :指秘钥保存的路径,默认保存在当前文件夹

生成一个长度为2048的xml格式的秘钥示例:

dotnetrsa gen -s 2048 -f xml

2.转换秘钥

转换秘钥使用命令 dontetrsa convert ,加入-h` 获取帮助:

Usage: dotnetrsa convert [arguments] [options]

Arguments:
  KeyFilePath         Required.Secret key file path.

Options:
  -h|--help           Show help information
  -f|--from <format>  Required.Source format.The value must be xml, pkcs1,pkcs8.
  -t|--to <format>    Required.Target format.The value must be xml, pkcs1,pkcs8.
  -k                  Required.Key type.The value must be pri, pub.'pub' represents the public key.
  -o|--output <path>  File output path.If you do not specify it will be output in the current directory.

KeyFilePath:指定被转换的秘钥的路径

-f 或者 --from :该字段为必须指定,指被转换的秘钥的格式,值只能为 xml、pkcs1、pkcs8

-t 或者 --to:该字段为必须指定,指需要转换的目标格式,值只能为 xml、pkcs1、pkcs8

-k :指被转换的秘钥的类型,公钥或者私钥,值只能为 pri 或者 pub ,分别代表公钥和私钥

-o :转换的秘钥的输出路径,默认为当前目录

将一个格式为xml的私钥转换为pkcs1,示例:

dotnetrsa convert c:\xml_private.key -f xml -t pkcs1 -k pri

四.参考资料

DotnetRSA 生成和转换秘钥使用了开源项目 RSAUtil :https://github.com/stulzq/RSAUtil

DotnetRSA 的开源地址:https://github.com/stulzq/dotnetrsa

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端小吉米

async/await 一种非常丝滑的异步语法

1663
来自专栏PHP在线

PHP采集程序中常用的函数

[导读] 函数描述及例子 PHP采集程序中常用的函数 查询关键字 PHP采集程序中常用的函数 获得当前的脚本网址 function get_php_url...

3295
来自专栏Python

django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用

创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime...

5028
来自专栏前端小栈

vim简单操作指南-cheat sheet

863
来自专栏程序员互动联盟

【答疑释惑第十二讲】什么是函数库?

疑惑一 java中如何引入第三方jar包? 方法一、使用Bootstrap Classloader来加载这些类 我们可以在运行时使用如下参数: -Xbootcl...

3418
来自专栏日常分享

Struts2 学习笔记

4)核心控制器SturtsPrepareAndExecuteFilter实际上是一个Servlet过滤器,需再Web.xml中配置。 5)Action是由用户定...

1332
来自专栏Python爬虫实战

Python指南:文件处理

哪种文件格式最适合用于存储整个数据集——二进制、文本还是XML?这严重依赖于具体的上下文。

1171
来自专栏Java编程技术

一个有关定时生产与消费的问题

按照上面的逻辑看的话,每个队列里面最多有一个元素。其实不然,因为在多线程模型中每个线程占用cpu执行的时间是按照时间片来划分的,每个线程执行完自己的时间片后会被...

741
来自专栏逸鹏说道

C# 温故而知新: 线程篇(二) 上

线程池和异步线程 目录: 1 什么是CLR线程池? 2 简单介绍下线程池各个优点的实现细节 3 线程池ThreadPool的常用方法介绍 4 简单理解下异步线程...

3169
来自专栏漫漫深度学习路

python 文件操作

python 文件操作 判断文件/文件夹是否存在 import os print os.path.exits(file_name) # 存在:返回True,否则...

2037

扫码关注云+社区