openssl 加密(encrypt)、解密(decrypt)、签名(sign)、验证(verify)

一、使用openssl rsautl 进行加密、解密、签名、验证

javascript 复制代码
[kyzjj@yyzc-zjjcs04 openssl]$ openssl rsautl --help
Usage: rsautl [options]
-in file        input file
-out file       output file
-inkey file     input key
-keyform arg    private key format - default PEM
-pubin          input is an RSA public
-certin         input is a certificate carrying an RSA public key
-ssl            use SSL v2 padding
-raw            use no padding
-pkcs           use PKCS#1 v1.5 padding (default)
-oaep           use PKCS#1 OAEP
-sign           sign with private key
-verify         verify with public key
-encrypt        encrypt with public key
-decrypt        decrypt with private key
-hexdump        hex dump output
-engine e       use engine e, possibly a hardware device.
-passin arg    pass phrase source
[kyzjj@yyzc-zjjcs04 openssl]$

二、使用私钥签名openssl rsautl -sign

javascript 复制代码
[kyzjj@yyzc-zjjcs04 openssl]$ cat test
hello world
[kyzjj@yyzc-zjjcs04 openssl]$ openssl rsautl -sign  -inkey private.key  -in test -out sign-test
[kyzjj@yyzc-zjjcs04 openssl]$

三 、使用公钥验证openssl rsautl -verify

javascript 复制代码
[kyzjj@yyzc-zjjcs04 openssl]$ openssl rsautl -sign  -inkey private.key  -in test -out sign-test
[kyzjj@yyzc-zjjcs04 openssl]$ openssl rsautl -verify  -inkey  public.key  -pubin    -in sign-test
hello world
[kyzjj@yyzc-zjjcs04 openssl]$

上述方式可以确认身份,如果我用这个公钥能解密,那一定是你发送的,因为私钥只有你有

四、使用公钥加密

kyzjj@yyzc-zjjcs04 openssl$ openssl rsautl -encrypt -inkey public.key -pubin -in test -out en-test

kyzjj@yyzc-zjjcs04 openssl$

五、使用私钥解密

kyzjj@yyzc-zjjcs04 openssl$ openssl rsautl -decrypt -inkey private.key -in en-test

hello world

kyzjj@yyzc-zjjcs04 openssl$

相关推荐
前端世界41 分钟前
Linux服务器实战:NTP时间同步、SELinux权限与rsyslog日志管理,一次搞懂三大运维问题
linux·运维·服务器
Android系统攻城狮42 分钟前
Linux Gstreamer深度解析之gst_audio_converter_new调用流程与实战(二十)
linux·运维·服务器·gstreamer音视频·音视频进阶
captain3761 小时前
▲网络原理(2)-TCP
java·服务器·网络·tcp/ip·java-ee
言乐62 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
m0_459872929 小时前
Linux 系统基础
linux·运维·服务器
2401_8919573110 小时前
简单了解多路转接select
运维·服务器
程序员-Benothing10 小时前
Shell 脚本条件判断与流程控制:if for while case 详解
linux·运维·服务器
captain37610 小时前
网络原理(3)-TCP核心机制连接管理▲▲▲
java·服务器·网络·ide·网络协议·tcp/ip·java-ee
君生我老11 小时前
Linux动静态库
linux·服务器
troy12811 小时前
Python 基础语法(一):变量、数据类型与运算符
java·服务器·python