搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
从前慢现在也慢
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
自然语言处理选择题_rb.sub(自然语言处理,nlp,text1)表示的含义是
2
第三次面试总结 - 吉云集团 - 全栈开发
3
高可用、高性能、高扩展推荐系统的构建过程及架构演进
4
基于springboot框架的校园食堂外卖点餐系统_餐饮外卖系统国内外研究现状
5
Kafka入门到起飞系列 - 副本机制,什么是副本因子呢?_kafka 副本因子
6
AI发电厂——数据标注公司(国内数据标注公司服务调研)_数据标注外包公司
7
基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)_selenium+python 的 web 自动化测试开源框架下载
8
Caddy2学习笔记——Caddy2反向代理docker版本的headscale_caddy反向代理
9
基于vue技术的农产品商城系统(开题报告+源码)_vue农产品介绍前端模板
10
Android_studio入门之Linearlayout+基本初级语法_androidstudio常用的语句
当前位置:
article
> 正文
OpenSSL公钥私钥加密解密程序_openssl 明文私钥
作者:从前慢现在也慢 | 2024-03-25 08:38:06
赞
踩
openssl 明文私钥
生成私钥:
openssl genrsa -out private.key 2048
生成公钥:
openssl rsa -in privkey.pem -pubout > public.pem
C代码如下所示。
在Linux下的编译:gcc test.c -lcrypto -o test
#include
<
stdlib
.
h
>
#include
<
stdio
.
h
>
#include
<
string
.
h
>
#include
<
openssl
/
pem
.
h
>
#include
<
openssl
/
rsa
.
h
>
int
main
(
)
{
/
/
原始明文
char plain
[
256
]
=
"测试测试,hello123"
;
/
/
用来存放密文
char encrypted
[
1024
]
;
/
/
用来存放解密后的明文
char decrypted
[
1024
]
;
/
/
公钥和私钥文件
const
char
*
pub_key
=
"public.pem"
;
const
char
*
priv_key
=
"private.pem"
;
/
/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
/
/
利用公钥加密明文的过程
/
/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
/
/
打开公钥文件
FILE
*
pub_fp
=
fopen
(
pub_key
,
"r"
)
;
if
(
pub_fp
=
=
NULL
)
{
printf
(
"failed to open pub_key file %s!\n"
,
pub_key
)
;
return
-
1
;
}
/
/
从文件中读取公钥
RSA
*
rsa1
=
PEM_read_RSA_PUBKEY
(
pub_fp
,
NULL
,
NULL
,
NULL
)
;
if
(
rsa1
=
=
NULL
)
{
printf
(
"unable to read public key!\n"
)
;
return
-
1
;
}
if
(
strlen
(
plain
)
>
=
RSA_size
(
rsa1
)
-
41
)
{
printf
(
"failed to encrypt\n"
)
;
return
-
1
;
}
fclose
(
pub_fp
)
;
/
/
用公钥加密
int
len
=
RSA_public_encrypt
(
strlen
(
plain
)
,
plain
,
encrypted
,
rsa1
,
RSA_PKCS1_PADDING
)
;
if
(
len
=
=
-
1
)
{
printf
(
"failed to encrypt\n"
)
;
return
-
1
;
}
/
/
输出加密后的密文
FILE
*
fp
=
fopen
(
"out.txt"
,
"w"
)
;
if
(
fp
)
{
fwrite
(
encrypted
,
len
,
1
,
fp
)
;
fclose
(
fp
)
;
}
/
/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
/
/
利用私钥解密密文的过程
/
/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
/
/
打开私钥文件
FILE
*
priv_fp
=
fopen
(
priv_key
,
"r"
)
;
if
(
priv_fp
=
=
NULL
)
{
printf
(
"failed to open priv_key file %s!\n"
,
priv_key
)
;
return
-
1
;
}
/
/
从文件中读取私钥
RSA
*
rsa2
=
PEM_read_RSAPrivateKey
(
priv_fp
,
NULL
,
NULL
,
NULL
)
;
if
(
rsa2
=
=
NULL
)
{
printf
(
"unable to read private key!\n"
)
;
return
-
1
;
}
/
/
用私钥解密
len
=
RSA_private_decrypt
(
len
,
encrypted
,
decrypted
,
rsa2
,
RSA_PKCS1_PADDING
)
;
if
(
len
=
=
-
1
)
{
printf
(
"failed to decrypt!\n"
)
;
return
-
1
;
}
fclose
(
priv_fp
)
;
/
/
输出解密后的明文
decrypted
[
len
]
=
0
;
printf
(
"%s\n"
,
decrypted
)
;
}
http://blog.chinaunix.net/uid-23686726-id-3413979.html
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/308340
推荐阅读
article
OpenSSL
生成
rsa
公钥 和
私钥
_
openssl
生成公钥和
私钥
...
一、自己本地有没有安装
openssl
如果没有安装的,去下载安装http://slproweb.com/products...
赞
踩
article
给
文件
加解密
(
openssl
实现)(二)
公钥
私钥
加解密
_
openssl
私钥
加密
...
一、
openssl
命令
openssl
rsautl [-in file] [-out file] [-inkey fi...
赞
踩
article
openssl
windows
生成
公钥与
私钥
_
win10
电脑如何
生成
.
pem
私钥
文件...
一,下载安装
windows
平台
openssl
密钥
生成
工具,执行安装目录bin下的"
openssl
.exe",执行后弹出命...
赞
踩
article
openssl
--
生成
RSA
公钥和私钥_
openssl
生成
公钥和私钥...
openssl
--
生成
RSA
密钥对_
openssl
生成
公钥和私钥
openssl
生成
公钥和私钥 ...
赞
踩
article
openssl
生成
公私
钥
_
openssl
生成
公
钥
和私
钥
...
openssl
生成
RSA非对称公私
钥
_
openssl
生成
公
钥
和私
钥
openssl
生成
公
钥
和私
钥
...
赞
踩
article
openssl
RSA
的部分命令_
openssl
gen
rsa
-
out
rsa
_
2048
_
priv
...
openssl
RSA
_
openssl
gen
rsa
-
out
rsa
_
2048
_
priv
.
pem
2048
openss...
赞
踩
article
linux
+
openssl
命令之
RSA
加解密操作_
kali
openssl
rsa
使用
...
RSA
(Rivest-Shamir-Adleman)是一种非对称加密算法,由Ron Rivest、Adi Shamir和...
赞
踩
article
利用
openssl
生成
RSA
公钥
和
私钥
_基于
openssl
生成
1024 位的
rsa
公钥
-私...
利用
openssl
生成
RSA
公钥
和
私钥
_基于
openssl
生成
1024 位的
rsa
公钥
-
私钥
对基于 opens...
赞
踩
article
使用
openssl
对
文件
签
名
和验
签
_
openssl
签
名
...
这里介绍:
文件
签
名
和验
签
做了什么,
openssl
命令行工具进行
签
名
和验
签
_
openssl
签
名
openssl
签
名
...
赞
踩
article
openssl
加密(
encrypt
)、
解密
(
decrypt
)、签名(
sign
)、验证(
verify
...
openssl
加密(
encrypt
)、
解密
(
decrypt
)、签名(
sign
)、验证(
verify
)_
openssl
_...
赞
踩
article
使用
OpenSSL
加密
和解密文件_
openssl
用公钥
加密
...
加密
_
openssl
用公钥
加密
openssl
用公钥
加密
OpenSSL
是一个实用工具,它可...
赞
踩
article
OpenSSL
基础
命令
_
openssl
命令
用法...
OpenSSL
功能之强大,
命令
组合用法之多,往往让我们的学习不知所措。在此,我们来对
openssl
命令
的使用做一个总结。...
赞
踩
article
openssl
加解密
简单探索_
openssl
enc
...
在我们使用的时候最好加salt,同样的内容生成的密文却不同,这样可以保证我们的密文的安全性。salt会在密文中保存,在解...
赞
踩
article
c
/
c
++基于
openssl
库的DES
加密
ECB模式
pk
c
s5padding
填充_
c
++ opens...
前言最近项目中需要使用DES
加密
算法,因为算法模式以及填充方式的不同导致无法正确
加密
解密,最终通过基于
openssl
库来...
赞
踩
article
使用
openssl
库
进行
DES
加密
_#
include
<
openssl
/
des
.h>...
openssl
库实现了大多数的
加密
算法,如AES,
DES
,RSAdend_#
include
#
include
[详细]
-->
赞
踩
article
OpenSSL
常用命令_
openssl
rsa
-in $
endusername
.
key
-pub...
OpenSSL
常用命令整理_
openssl
rsa
-in $
endusername
.
key
-
pubout
| op...
赞
踩
article
OpenSSL
:
DES
加解密实战_
openssl
_
decrypt
(): failed to base...
DES
加密算法,是一种对称加密算法,加解密都使用同一个密钥。
OpenSSL
扩展,是PHP常用的密码扩展之一。Open...
赞
踩
article
Mac m1 上编译阿里
OSS
c++ 供 UE 使用_/
opt
/
homebrew
/
opt
/ope...
在 macOS M1 上编译阿里
OSS
SDK 的整个过程,并在 UE5 中创建插件,并测试编译好的 SDK。_/op...
赞
踩
相关标签
php
shell
openssl
linux
服务器
运维
网络安全
ssl
密码学
非对称加密
RSA
batch
bash
开发语言
java
测试工具
安全