目录

        实验原理
        实验过程
            一、对称加密
                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)的更多相关文章

  1. Docker基础技术:Linux Namespace(下)

    在 Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中,主 ...

  2. Docker 基础技术:Linux Namespace(下)

    导读 在Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中 ...

  3. 转:一份基础的嵌入式Linux工程师笔试题

    一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...

  4. Docker 基础技术之 Linux cgroups 详解

    PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 推荐大家到公众号阅读,那里阅读体验更好,也沉淀了很多篇干货. 前面两篇 ...

  5. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  6. OpenSSL基础知识

    1.openssl里的fips是什么意思? openssl-fips是符合FIPS标准的Openssl. 联邦信息处理标准(Federal Information Processing Standar ...

  7. Docker基础技术:Linux CGroup

    前面,我们介绍了Linux Namespace,但是Namespace解决的问题主要是环境隔离的问题,这只是虚拟化中最最基础的一步,我们还需要解决对计算机资源使用上的隔离.也就是说,虽然你通过Name ...

  8. Docker基础技术:Linux Namespace(上)

    时下最热的技术莫过于Docker了,很多人都觉得Docker是个新技术,其实不然,Docker除了其编程语言用go比较新外,其实它还真不是个新东西,也就是个新瓶装旧酒的东西,所谓的The New “O ...

  9. 基础知识全面LINUX

    学习Linux系统的重要性应该不用多说,下面我就对Linux的基础知识进行一个全面而又简单的总结.不过建议大家还是装个Linux系统多练习,平时最好只在Linux环境下编程,这样会大有提高. linu ...

  10. Netty基础系列(1) --linux网路I/O模型

    引言 我一直认为对于java的学习,掌握基础的性价比要远远高于使用框架,而基础知识中对于网络相关知识的掌握也是重中之重.对于一个java程序来说,无论是工作中还是面试,对于Netty的掌握都是及其重要 ...

随机推荐

  1. 第三方JavaScript库有时会附带*.map文件的所用

    第三方JavaScript库有时会附带*.map文件的所用:起到对源***.js文件进行源码转换和压缩的作用. 详见参考链接:JavaScript Source Map 详解

  2. golang两个协程交替打印出1-100

    基于channel实现的,两个协程交替打印出1-100 package main import ( "fmt" "sync" ) var ( toOdd = m ...

  3. Docker简易操作

    Docker简易操作 1.启动docker sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...] sudo docker run -d -p 8009: ...

  4. TagHelper中获取当前Url

    在自定义TagHelper时,我们无法通过TagHelperContext 和 TagHelperOutput 获取到当前路由的信息,我们需要添加注入ViewContext [HtmlAttribut ...

  5. vue实现自定义音乐播放器

    项目中遇到了,让实现一个音乐播放器的功能.修改其样式要求自定义,切需要有,进度条,时间,开关,应用于H5需要兼容ios与android.简单看一下如图播放器 完成代码 audioCom.vue < ...

  6. Solution Set -“似一捧细泉的奔逃”

    目录 0.「OurOJ #47912」优美的分配方案 1.「OurOJ #47927」海之女仆 2.「OurOJ #47950」中档题 3.「OurOJ #47933」坐标 4.「OurOJ #479 ...

  7. 连接Redis 错误的解决方法: It was not possible to connect to the redis server(s); to create a disconnected multiplexer

    The error you are getting is usually a sign that you have not set abortConnect=false in your connect ...

  8. runoob-PostgreSQL 教程

    https://www.runoob.com/postgresql/postgresql-tutorial.html

  9. struts2框架详解

    struts2框架(1)---struts2入门 struts2框架 如果你之前在MVC模式的时候一直都是通过servlet,获取和返回数据,那么现在开始学习struts2框架, Struts是一个实 ...

  10. 常见的HTML特殊字符:对钩与叉号,五角星

    表示"对钩","叉号"的特殊转义符号汇总: 对钩符号 编码 描述 叉号符号 编码 描述 ✓ ✓ CHECK MARK 手写体对钩(细) ✗ ✗ BALLOT X ...