openssl基础使用(密码学 linux)
目录
实验原理
实验过程
一、对称加密
1、使用rc4加解密
2、使用AES加解密
3、使用3DES加解密
二、非对称加密
1、RSA加解密码
实验原理
openssl是Linux内置的一款开源工具,实现了常见的密码算法与应用。通过openssl操作,完成各种密码算法的应用。
实验过程
创建一个文件,用于被加密,文件内容为12345,文件名为test.txt
echo 12345 >test.txt
1
在这里插入图片描述
一、对称加密
1、使用rc4加解密
加密
openssl enc -e -rc4 -in test.txt -out test_rc4.enc
1
在这里插入图片描述
这是第一个是设置密码,第二个是重复输入密码。两次必须一样。
加密完后利用 ll 命令就可以看见。
我们可以cat 查看一下这个文件
在这里插入图片描述
解密
openssl enc -d -rc4 -in test_rc4.enc -out test_rc4.dm
1
解密完以后依旧是打开输出文件看一下,发现已经成功解密了。
在这里插入图片描述
2、使用AES加解密
这和上面加密过程也差不多,加密时设置密码,两遍要相同。
openssl enc -e -aes-128-cbc -a -salt -in test.txt -out test_aes128.enc
1
在这里插入图片描述
解密
openssl enc -d -aes-128-cbc -a -salt -in test_aes128.enc -out test_aes128.d
1
在这里插入图片描述
3、使用3DES加解密
加密
openssl enc -e -des3 -a -salt -in test.txt -out test_des3.enc
1
在这里插入图片描述
解密
openssl enc -d -des3 -a -salt -in test_des3.enc -out test_des3.d
1
在这里插入图片描述
二、非对称加密
1、RSA加解密码
生成RSA密钥对
openssl genrsa -out rsa.key 1024
1
在这里插入图片描述
导出公钥
openssl rsa -in rsa.key -pubout -out rsa_pub.key
1
在这里插入图片描述
此时可以 ll 查看一下:
在这里插入图片描述
使用公钥加密文件
openssl rsautl -encrypt -in test.txt -inkey rsa_pub.key -pubin -out test_rsa.enc
1
在这里插入图片描述
使用私解解密文件
openssl rsautl -decrypt -in test_rsa.enc -inkey rsa.key -out test_rsa.c
1
在这里插入图片描述
这里需要注意的是,解密命令用的文件和加密时不一样,加密时用的是导出的公钥,而解密是用的直接是生成的密钥对文件。
使用公钥解密报错
openssl rsautl -decrypt -in test_rsa.enc -inkey rsa_pub.key -out test_rsa.c
1
在这里插入图片描述
————————————————
版权声明:本文为CSDN博主「一青一柠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_56438857/article/details/126028798
openssl基础使用(密码学 linux)的更多相关文章
- Docker基础技术:Linux Namespace(下)
在 Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中,主 ...
- Docker 基础技术:Linux Namespace(下)
导读 在Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中 ...
- 转:一份基础的嵌入式Linux工程师笔试题
一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...
- Docker 基础技术之 Linux cgroups 详解
PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 推荐大家到公众号阅读,那里阅读体验更好,也沉淀了很多篇干货. 前面两篇 ...
- Linux入门基础教程之Linux下软件安装
Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...
- OpenSSL基础知识
1.openssl里的fips是什么意思? openssl-fips是符合FIPS标准的Openssl. 联邦信息处理标准(Federal Information Processing Standar ...
- Docker基础技术:Linux CGroup
前面,我们介绍了Linux Namespace,但是Namespace解决的问题主要是环境隔离的问题,这只是虚拟化中最最基础的一步,我们还需要解决对计算机资源使用上的隔离.也就是说,虽然你通过Name ...
- Docker基础技术:Linux Namespace(上)
时下最热的技术莫过于Docker了,很多人都觉得Docker是个新技术,其实不然,Docker除了其编程语言用go比较新外,其实它还真不是个新东西,也就是个新瓶装旧酒的东西,所谓的The New “O ...
- 基础知识全面LINUX
学习Linux系统的重要性应该不用多说,下面我就对Linux的基础知识进行一个全面而又简单的总结.不过建议大家还是装个Linux系统多练习,平时最好只在Linux环境下编程,这样会大有提高. linu ...
- Netty基础系列(1) --linux网路I/O模型
引言 我一直认为对于java的学习,掌握基础的性价比要远远高于使用框架,而基础知识中对于网络相关知识的掌握也是重中之重.对于一个java程序来说,无论是工作中还是面试,对于Netty的掌握都是及其重要 ...
随机推荐
- springboot的yml文件中如何配置redis?
springboot的yml文件中如何配置redis? 解决方法: spring: #redis配置 redis: database: 0 timeout: 0 # Redis服务器地址 host: ...
- 给 Python 添加进度条 | 给小白的 tqdm 精炼实例!
给 Python 添加进度条 | 给小白的 tqdm 精炼实例! 假设我们有一个循环: for i in range(100): do_something() # 这里做某些事 假设 do_somet ...
- Applitools_问题汇总
1. Android使用Real Device 问题1: AttributeError: 'NoneType' object has no attribute 'to_capabilities' 解 ...
- ATM 管理系统的设计与实现(类似毕业设计,附源代码)
ATM 管理系统的设计与实现 作者前言:本系统通过基本规范化的设计,简单的利用了java基本功能实现了ATM系统,本系统虽然简单,但是逻辑很严密,对于有一定java知识的读者有较大帮助,可以用作参考. ...
- C#中如何使用异步编程
在 C# 中,异步编程主要通过 async 和 await 关键字来实现.异步编程的目的是让程序在执行耗时操作(如 I/O 操作.网络请求等)时不会阻塞主线程,从而提高程序的性能. 1. 异步编程的核 ...
- Solution Set - 多项式杂题
0. 「OurOJ #46942」/「51nod #1824」染色游戏 Private link & Submission. 首先,显然有 \[f(t)=\sum_{i=0}^t\bi ...
- 学Shiro完结版-5
第二十一章 授予身份及切换身份--<跟我学Shiro> 在一些场景中,比如某个领导因为一些原因不能进行登录网站进行一些操作,他想把他网站上的工作委托给他的秘书,但是他不想把帐号/密码告诉他 ...
- kafka的server.properties文件描述
版本:基于 kafka 2.4.0 http://archive.apache.org/dist/kafka/2.4.0/kafka_2.11-2.4.0.tgz # Licensed to the ...
- 深⼊mysqlONDUPLICATEKEYUPDATE语法的分析
深⼊mysqlONDUPLICATEKEYUPDATE语法的分析mysql "ON DUPLICATE KEY UPDATE" 语法如果在INSERT语句末尾指定了ON DUPLI ...
- oracle和sqlserver对于事务数据库死锁处理的区别
create table aa_test ( id int constraint TEST_PK primary key, name varchar2(50) ) / insert into aa_t ...