OpenSSL命令---pkey

用途:

公钥或私钥的处理工具。它可以打印和转换不同的表单和组件。

用法:

openssl pkey [-inform PEM|DER] [-outform PE|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] 
[-cipher] [-text] [-text_pub] [-noout] [-pubin] [-pubout] [-engine id]

选项说明:

-inform PEM|DER:输入文件格式,DER或者PEM格式。DER格式采用ASN1DER标准格式。一般用的多的都是PEM格式,就是base64编码格式。

-outform DER|PEM:输出文件格式,DER或者PEM格式。

-in filename:输入的DSA密钥文件,默认为标准输入。

-out filenameDSA密钥输出文件,默认为标准输出。

-passin arg:指定私钥包含口令存放方式。比如用户将私钥的保护口令写入一个文件,采用此选项指定此文件,可以免去用户输入口令的操作。比如用户将口令写入文件“pwd.txt”,输入的参数为:-passin file:pwd.txt

-passout arg:输出文件口令保护存放方式。

-text:打印出公钥或私钥的组件信息值。

-text_pub:如果一个私钥正在被处理,则仅仅打印出公钥组件。

-noout:不打印出密钥的编码版本信息值。

-pubin:该命令默认的是读取一个私钥,使用该命令则从文件中读取一个公钥值。

-pubout:该命令默认的是保存一个私钥,用该命令则将私钥值保存到文件中。

-engine id:使用的硬件引擎。

实例:

RSA密钥的输入口令去掉:

openssl pkey -in key.pem -out keyout.pem


3DES算法加密一个私钥:

openssl pkey -in key.pem -des3 -out keyout.pem


把一个私钥从PEM格式转换为DER格式:

openssl pkey -in key.pem -outform DER -out keyout.der


打印私钥组件信息值到标准输出中:

openssl pkey -in key.pem -text -noout


打印私钥组件的公钥部分到标准输出中:

openssl pkey -in key.pem -text_pub -noout


仅仅打印私钥组件的公钥部分:

openssl pkey -in key.pem -pubout -out pubkey.pem
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
转c#写法:#!/bin/sh time_stamp=`date +%s` function CheckStop() { if [ $? -ne 0 ]; then echo "execute fail, error on line_no:"$1" exit!!!" exit fi } function GenEcdsaKey() { ec_param_file_path="/tmp/ec_param.pem."$time_stamp openssl ecparam -out $ec_param_file_path -name prime256v1 -genkey CheckStop $LINENO openssl genpkey -paramfile $ec_param_file_path -out $1 CheckStop $LINENO openssl pkey -in $1 -inform PEM -out $2 -outform PEM -pubout CheckStop $LINENO rm $ec_param_file_path echo "gen_ecdsa_key succ prikey_path:"$1" pubkey_path:"$2 } function GenEcdsaSign() { ec_sign_info_file="/tmp/ec_sign_info_file."$time_stamp ec_sign_info_sha256="/tmp/ec_sign_info_sha256."$time_stamp ec_binary_sign_file="/tmp/ec_binary_sign_file."$time_stamp echo -n "$1"_"$2" > $ec_sign_info_file openssl dgst -sha256 -binary -out $ec_sign_info_sha256 $ec_sign_info_file CheckStop $LINENO openssl pkeyutl -sign -in $ec_sign_info_sha256 -out $ec_binary_sign_file -inkey $3 -keyform PEM CheckStop $LINENO openssl base64 -e -in $ec_binary_sign_file -out $4 CheckStop $LINENO rm $ec_sign_info_file $ec_sign_info_sha256 $ec_binary_sign_file echo "gen_ecdsa_sign succ sign_file_path:"$4 } function VerifyEcdsaSign() { ec_sign_info_file="/tmp/ec_sign_info_file."$time_stamp ec_sign_info_sha256="/tmp/ec_sign_info_sha256."$time_stamp ec_binary_sign_file="/tmp/ec_binary_sign_file."$time_stamp echo -n "$1"_"$2" > $ec_sign_info_file openssl dgst -sha256 -binary -out $ec_sign_info_sha256 $ec_sign_info_file CheckStop $LINENO openssl base64 -d -in $4 -out $ec_binary_sign_file CheckStop $LINENO openssl pkeyutl -verify -in $ec_sign_info_sha256 -sigfile $ec_binary_sign_file -pubin -inkey $3 -keyform PEM rm $ec_sign_info_file $ec_sign_info_sha256 $ec_binary_sign_file } function Usage() { echo "Usage:" echo "mmiot_ecdsa_sign.sh gen_ecdsa_key <private_key_file_path> <public_key_file_path>" echo "mmiot_ecdsa_sign.sh gen_ecdsa_sign <product_id> <sn> <private_
05-31

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值