linux-openssl命令行

linux-openssl命令行,第1张

title: linux-openssl

date: 2020-09-16 11:02:15

categories:

{% note info %}

OpenSSL是一个健壮的、商业级的、功能齐全的开源工具包,用于传输层安全(TLS)协议,以前称为安全套接字层(Secure Sockets Layer, SSL)协议。协议实现基于全强度通用密码库,也可以单独使用。

openssl是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。

<span style="color:red">项目地址</span> <span style="color:red">官方网址</span> <span style="color:red">手册</span>

{% endnote %}

{% tabs configtab, 1 %}

对称算法使用一个密钥。给定一个明文和一个密钥,加密产生密文,其长度和明文大致相同。解密时,使用读密钥与加密密钥相同。

ECB\CBC\CFB\OFB

摘要算法是一种能产生特殊输出格式的算法,这种算法的特点是:无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是摘要,被摘要的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此,基于这种原理的算法便能对数据完整性提供较为健全的保障。但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是不可逆的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证。

如今常用的“消息摘要”算法经历了多年验证发展而保留下来的算法已经不多,这其中包括MD2、MD4、MD5、SHA、SHA-1/256/383/512等。

常用的摘要算法主要有MD5和SHA1。MD5的输出结果为16字节,sha1的输出结果为20字节。

在公钥密码系统中,加密和解密使用的是不同的密钥,这两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。这使得通信双方无需事先交换密钥就可进行保密通信。其中加密密钥和算法是对外公开的,人人都可以通过这个密钥加密文件然后发给收信者,这个加密密钥又称为公钥;而收信者收到加密文件后,它可以使用他的解密密钥解密,这个密钥是由他自己私人掌管的,并不需要分发,因此又成称为私钥,这就解决了密钥分发的问题。

主要的公钥算法有:RSA、DSA、DH和ECC。

Openssl中大量用到了回调函数。回调函数一般定义在数据结构中,是一个函数指针。通过回调函数,客户可以自行编写函数,让openssl函数来调用它,即用户调用openssl提供的函数,openssl函数再回调用户提供的函数。这样方便了用户对openssl函数 *** 作的控制。在openssl实现函数中,它一般会实现一个默认的函数来进行处理,如果用户不设置回调函数,则采用它默认的函数。

{% endtabs %}

这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e\x0d\x0a这里以1.txt为需要被加密的文件。\x0d\x0a\x0d\x0a一、用oppnsslmd5加密字符串和文件的方法。\x0d\x0a1.oppnsslmd5加密字符串的方法\x0d\x0aa.手动输入命令及过程如下:\x0d\x0a#openssl//在终端中输入openssl后回车。\x0d\x0aOpenSSL>md5//输入md5后回车\x0d\x0a123456//接着输入123456,不要输入回车。然后按3次ctrl+d。\x0d\x0a123456e10adc3949ba59abbe56e057f20f883e//123456后面的就是密文了\x0d\x0a解释:为何在输入123456后不回车呢?\x0d\x0a是因为openssl默认会把回车符当做要加密的字符串中的一个字符,所以得到的结果不同。如果你输入123456后回车,在按2次ctrl+d。得到的结果是:\x0d\x0aOpenSSL>md5\x0d\x0a123456\x0d\x0af447b20a7fcbf53a5d5be013ea0b15af//因为openssl不忽略回车符导致的\x0d\x0ab.或者直接用管道命令\x0d\x0a#echo-n123456|opensslmd5//必须要有-n参数,否则就不是这个结果了。\x0d\x0ae10adc3949ba59abbe56e057f20f883e\x0d\x0a解释:为何要加-n这个参数?\x0d\x0a-n就表示不输入回车符,这样才能得到正确的结果。如果你不加-n,那么结果和前面说的一样为:\x0d\x0af447b20a7fcbf53a5d5be013ea0b15af//因为openssl不忽略回车符导致的\x0d\x0a2.用openssl加密文件。\x0d\x0a#opensslmd5-in1.txt\x0d\x0a\x0d\x0a##################################################3\x0d\x0aOpenssl其他相关加密的命令参数:引自:实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密收藏\x0d\x0a一.利用openssl命令进行BASE64编码解码(base64encode/decode)\x0d\x0a1.BASE64编码命令\x0d\x0a对字符串‘abc’进行base64编码:\x0d\x0a#echoabc|opensslbase64\x0d\x0aYWJjCg==(编码结果)\x0d\x0a如果对一个文件进行base64编码(文件名t.txt):\x0d\x0a#opensslbase64-int.txt\x0d\x0a2.BASE64解码命令\x0d\x0a求base64后的字符串‘YWJjCg==’的原文:\x0d\x0a#echoYWJjCg==|opensslbase64-d\x0d\x0aabc(解码结果)\x0d\x0a如果对一个文件进行base64解码(文件名t.base64):\x0d\x0a#opensslbase64-d-int.base64\x0d\x0a二.利用openssl命令进行md5/sha1摘要(digest)\x0d\x0a1.对字符串‘abc’进行md5摘要计算:echoabc|opensslmd5\x0d\x0a若对某文件进行md5摘要计算:opensslmd5-int.txt\x0d\x0a2.对字符串‘abc’进行sha1摘要计算:echoabc|opensslsha1\x0d\x0a若对某文件进行sha1摘要计算:opensslsha1-int.txt\x0d\x0a三.利用openssl命令进行AES/DES3加密解密(AES/DES3encrypt/decrypt)\x0d\x0a对字符串‘abc’进行aes加密,使用密钥123,输出结果以base64编码格式给出:\x0d\x0a#echoabc|opensslaes-128-cbc-k123-base64\x0d\x0aU2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g=(结果)\x0d\x0a对以上结果进行解密处理:\x0d\x0a#echoU2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g=|opensslaes-128-cbc-d-k123-base64\x0d\x0aabc(结果)\x0d\x0a若要从文件里取原文(密文)进行加密(解密),只要指定-in参数指向文件名就可以了。\x0d\x0a进行des3加解密,只要把命令中的aes-128-cbc换成des3就可以了。\x0d\x0a注:只要利用opensslhelp就可以看到更多的安全算法了。\x0d\x0a###############################################\x0d\x0a\x0d\x0a二、利用php的md5函数加密字符串\x0d\x0a#toucha.php//创建a.php文件\x0d\x0a#via.php//用vi编辑a.php文件\x0d\x0a将输入进去后保存\x0d\x0a#phpa.php//运行a.php文件\x0d\x0a显示:e10adc3949ba59abbe56e057f20f883e\x0d\x0a三、利用md5sum命令\x0d\x0aA.在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。可以用下面的命令来获取md5sum命令帮助manmd5sum\x0d\x0a#md5sum_help\x0d\x0a有个提示:“WithnoFILE,orwhenFILEis-,readstandardinput.”翻译过来就是“如果没有输入文件选项或者文件选项为-,则从标砖读取输入内容”,即可以直接从键盘读取字符串来加密。\x0d\x0a利用md5sum加密字符串的方法\x0d\x0a#md5sum//然后回车\x0d\x0a123456//输入123456.然后按两次ctrl+d.\x0d\x0a显示:\x0d\x0a123456e10adc3949ba59abbe56e057f20f883e红色代表加密后的值\x0d\x0a还可以用管道命令:\x0d\x0a#echo-n'123123'|md5sum\x0d\x0a\x0d\x0a或者写成md5加密脚本,名字叫md5.sh,\x0d\x0a将以下内容复制进脚本里:\x0d\x0a#!/bin/bash\x0d\x0aecho-n$1|md5sum|awk'{print$1}'\x0d\x0a\x0d\x0a保存后,给脚本执行权限。\x0d\x0a#shmd5.sh123456\x0d\x0a显示:e10adc3949ba59abbe56e057f20f883e\x0d\x0aB.其实也可以将文本放入文本文件,然后用md5sum加密改文本,也可以得到字符串加密的值。过程如下:\x0d\x0a#toucha.txt\x0d\x0a#echo-n123456>a.txt//将123456写进文本文件,不能丢了_n参数,避免回车符干扰\x0d\x0a#md5suma.txt\x0d\x0a显示:e10adc3949ba59abbe56e057f20f883ea.txt\x0d\x0a\x0d\x0actrl+d有两个含义:\x0d\x0a一是向程序发送文件输入结束符EOF。\x0d\x0a二是向程序发送exit退出指令。程序收到信号后具体动作是结束输入、然后等待,还是直接退出,那就要看该程序捕获信号后是如何 *** 作的了。\x0d\x0amd5sum属于第一个含义。两次strl+d了,第一次读取EOF指令,再次捕获就会当成exit指令。而shell一类的程序,会直接把ctrl+d解析为退出指令。

1,启动虚拟机,出现下面的倒计时界面时,按键盘上的e键

(说明:要确保光标此时已经在虚拟机内了,要不然,按了e键,也是在windows内,无效。e代表edit,启动前编辑) 

2,进入如下后界面,再按e键 

3,进入如下界面后,使用键盘上的上下键,选中第二项以kernel开头的项。选中后,再次按e键

4,进入以下界面后,在最后面输入空格和s,然后回车。(注意:有的系统显示的内容可能和我下面出现的这一行不一样,没关系,直接加空格和s就行,不影响的;也就说什么呢,只要进入到这个页面,直接加空格和s,不要管他显示的是什么;) 

5,接着会回到如下界面,然后按下b键(b代表boot启动) 

6,进入如下界面: 

7,此时输入passwd root回车, 

8,输入密码,回车,确认密码,回车,输入reboot,回车; 

(声明:输入的密码不会显示出来,如果密码中想要带数字的话,不要使用键盘右边的number pad栏,要使用字母键盘上的数字,因为你不确定此时num lock是否锁定(针对笔记本而言)) 

step_9:最后就可以使用新密码登录了; 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7224792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存