opensl

时间:2024-06-13 17:55:31编辑:小松

OpenSSL 功能介绍

1 概述


OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

OpenSSL是实现安全套接字层(SSL v2 / v3)和传输层安全(TLS v1)网络协议及其所需的相关加密标准的加密工具包。

OpenSSL:开源项目

三个组件:

openssl: 多用途的命令行工具,包openssl

libcrypto: 加密算法库,包openssl-libs

libssl:加密模块应用库,实现了ssl及tls,包nss

.openssl命令:

两种运行模式:交互模式和批处理模式

opensslversion:程序版本号

标准命令、消息摘要命令、加密命令

标准命令:enc, ca, req, ...

查看帮助:openssl ?

可以通过openssl 来创建CA和颁发证书,文章 http://ghbsunny.blog.51cto.com/7759574/1964754

有做介绍,本文仅介绍openssl这个工具包的其他常用功能

2 案例介绍

2.1 对称加密

工具:openssl  enc, gpg,文章 http://ghbsunny.blog.51cto.com/7759574/1964887 已经介绍

算法:3des, aes, blowfish, twofish

.enc命令:

对称密码命令允许使用基于密码或明确提供的密钥的各种块和流密码来加密或解密数据。 Base64编码或解码也可以通过本身或加密或解密来执行。

The symmetric cipher commands allow data to be encrypted or decrypted using various block and stream ciphers using keys based on passwords or explicitly provided. Base64 encoding or decoding can also be performed either by itself or in addition to the encryption or decryption.

帮助:man enc

例子

加密文件

以下命令运行需要输入一个密码,当解密的时候需要输入相同的密码才能解密,这里新生成的文件后缀名不一定是cipher,可以自己指定

openssl enc  -e -des3 -a -salt -in testfile   -out testfile.cipher

解密文件

openssl  enc   -d -des3 -a -salt –in testfile.cipher -out testfile

2.2 公钥加密

公钥加密生成非对称的密钥

算法:RSA, ELGamal

工具:gpg, openssl  rsautl(man rsautl)

数字签名:

算法:RSA, DSA, ELGamal

密钥交换:

算法:dh

DSA: Digital Signature Algorithm

DSS:Digital Signature Standard

RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。命名是取其名字首字母组合成RSA

RSA公钥与私钥主要用于数字签名(Digital Signature)与认证(Authentication),我们一般也称之为不对称加密/解密。

2.2.1 生成密钥对

帮助:man genrsa

.生成私钥,这个生成密钥的过程要掌握

openssl genrsa  -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

私钥文件生成后,建议把权限改成600,保护,放在被其他人查看密码信息

私钥里的文件,如果被拿到,没有通过des这关键字加密的话,就相当于是明文

这个命令执行的时候,要输入八位数的密码,当要使用这个私钥的时候需要输入密码

(umask 077; openssl genrsa –out test.key  –des 2048)

括号表示子进程,结束后,umask就会恢复未默认的值,umask的值使得其他人和组都没有任何权限,是为了保护生成的私钥

2.2.2 从私钥中提取出公钥,导出公钥

公钥推不出私钥,私钥可以推出公钥

openssl  rsa  -in PRIVATEKEYFILE –pubout  –out PUBLICKEYFILE

Openssl  rsa  –in test.key  –pubout  –out test.key.pub

公钥是公开的,可以不设置权限,以上是生成公钥

2.2.3 公钥加密文件

openssl rsautl -encrypt -in input.file -inkey pubkey.pem -pubin -out output.file

-in 指定被加密的文件

-inkey 指定加密公钥文件

-pubin 表面是用纯公钥文件加密

-out 指定加密后的文件

例子:

openssl rsautl -encrypt -in ftpback -inkey test.key.pub -pubin -out ftpssl

2.2.4 私钥解密文件

openssl rsautl -decrypt -in input.file -inkey key.pem -out output.file

-in 指定需要解密的文件

-inkey 指定私钥文件

-out 指定解密后的文件

例子:

openssl rsautl -decrypt -in ftpssl -inkey test.key -out  ftpdec

2.3 单向加密

单向加密即获取摘要

工具:md5sum, sha1sum, sha224sum,sha256sum…

openssl    dgst

dgst:摘要功能输出所提供文件的消息摘要或十六进制形式的文件。 它们也可用于数字签名和验证。

The digest functions output the message digest of a supplied file or files in hexadecimal form. They can also be used for digital signing and verification.

.dgst命令:

帮助:man dgst

openssl  dgst  -md5 [-hex默认]  /PATH/SOMEFILE

openssl dgst  -md5 testfile

以上命令将文件生成一个固定长度的摘要值,算法是md5,大小占128bite

md5sum /PATH/TO/SOMEFILE

以上这两个md5得到的结果是一样的

.MAC: Message Authentication Code,单向加密(hash)的一种延伸应用,用于实现网络通信中保证所传输数据的完整性机制

MAC 消息认证码,构造方法可以基于hash,也可以基于对称加密算法,HMAC是基于hash的消息认证码。数据和密钥作为输入,摘要信息作为输出,常用于认证。

源文档

2.4 生成用户密码

passwd命令:

帮助:man sslpasswd

openssl  passwd  -1 -salt SALT

-1对应的就是hash的md5算法

SALT:这里是盐值,人为指定,使得同一密码生成的加密值不一样,最多8位,超过8位没有意义,比如前面8位一样,后面还有几位数不一样,这样生成的密码值是一样的

openssl  passwd  -1 –salt centos

grub-md5-crypt同样生成md5加密的口令,centos为盐值

比如这里的密码我都是输入123,但是盐值不一样,一个是centos,一个是centos6,生成的加密值不一样

2.5 生成随机数

帮助:man sslrand

rand命令在播放随机数生成器一次后输出num伪随机字节。 与其他openssl命令行工具一样,除了-rand选项中给出的文件外,PRNG种子使用文件$ HOME / .rnd或.rnd。 如果从这些来源获得足够的播种,将会写回新的$ HOME / .rnd或.rnd文件。

The rand command outputs num pseudo-random bytes after seeding the random number generator once.  As in other openssl command line tools, PRNG seeding uses the file $HOME/.rnd or .rnd in addition to the files given in the  -rand option.  A new $HOME/.rnd or .rnd file will be written back if enough seeding was obtained from these   sources.

openssl  rand -base64|-hex NUM

指定数字生成随机数,如果是-hex 后面的数值比如6,那么生成的长度是12位,因为hex生成的随机数是16进制组合的数,hex 后面的num是字节数,一个16进制数占用4位,半个字节

base后面可以生成随机密码

base64 生成随机的数,可以用任何字符,也可以把图片保存成base64的格式,通过base64生成的图片,可以

用base64来还原出图片

NUM: 表示字节数;-hex时,每个字符为十六进制,相当于4位二进制,出现的字符数为NUM*2

3 总结

openssl还有很多用法,本文仅单纯介绍了其中一部分,更多用法请使用帮助 man openssl 进行查看


[create_time]2022-07-25 14:34:52[/create_time]2022-08-07 16:07:37[finished_time]1[reply_count]0[alue_good]天士凯数码17[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.17c8f90c.C_inmfsFoMTRIvs--Fr01Q.jpg?time=4651&tieba_portrait_time=4651[avatar]TA获得超过2282个赞[slogan]这个人很懒,什么都没留下![intro]53[view_count]

openssh是什么软件

openssh是一种广泛使用的ssh程序,ssh就是secure shell的缩写,既安全命令行,是一种远程登录计算机操作的终端程序。 简单说,就是使苹果可以无线传输的一个工具。 只有安装了openssh,才可以让iphone使用winscp或者91手机助手等软件与电脑进行连接。

[create_time]2021-02-09 15:14:33[/create_time]2021-02-24 14:10:46[finished_time]1[reply_count]0[alue_good]万径寻踪[uname]https://iknow-pic.cdn.bcebos.com/08f790529822720ea8d85c866bcb0a46f21fabbc?x-bce-process=image/resize,m_lfit,w_450,h_600,limit_1[avatar]多视角多领域看待世事[slogan]多视角多领域看待世事[intro]2612[view_count]

openssl命令详解

OpenSSL是一个安全套接字层密码库,其包括常用的密码算法、常用的密钥生成和证书封装管理功能及SSL协议,并提供了丰富的应用程序以供测试。 OpenSSL是一个开源的项目,其由三个部分组成: 1、openssl命令行工具; 2、libencrypt加密算法库; 3、libssl加密模块应用库; 这里主要学习下openssl命令工具的用法,openssl命令工具有两种运行模式: 交换模式 和 批处理模式 。直接输入openssl回车即可进入交互模式,而输入带命令选项的openssl命令则进行批处理模式。 利用OpenSSL作对称加密需要使用其子命令enc,其用法为: 其中常用的选项为: 使用案例 : OpenSSL单向加密的子命令为dgst,其语法如下: 其常用的选项为: 单向加密除了 openssl dgst 工具还有: md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum 使用案例 : 或 OpenSSL还支持生成密码的hash离散值,其子命令为passwd,语法如下: 常用选项为: 使用案例 : openssl命令也支持生成随机数,其子命令为rand,对应的语法为: 常用选项有: 使用案例 : 利用openssl命令的子命令genrsa生成私钥,然后再使用子命令rsa私钥中提取公钥。 genrsa的语法如下: 通常来说秘钥文件的权限一般只能由管理员访问,因此可以结合umask命令来设置生成的密钥文件的权限,如: 而随后可利用rsa子命令生成的私钥文件中提取公钥,rsa子命令的语法为: 常用选项为: -in FILENAME:指明私钥文件的存放路径; -out FILENAME:指明将公钥的保存路径; -pubout:根据提供的私钥,从中提取出公钥; 如: 在使用OpenSSL命令创建证书前,可查看配置文件/etc/pki/tls/openss.conf文件,查看该文件定义了的证书存放位置及名称。 1)创建自签证书 首先为CA提供所需的目录及文件,并指明证书的开始编号: 随后生成私钥,注意私钥的文件名及其存放的位置,需与配置文件中相匹配: 最后创建自签证书: 其中命令 openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650 用到子命令为req,其为证书请求及生成的工具,用到的选项解释为: 2)颁发证书 通常来说在CA签署颁发证书需要进行以下步骤: 上述命令用到了openssl命令的子命令CA,用于在CA服务器上签署或吊销证书。 上述查看证书使用了openssl命令的子命令x509,其选项解释为: 3)吊销证书 吊销证书的步骤通常为: -gencrl选项为根据/etc/pki/CA/index.txt文件中的信息生成crl文件。

[create_time]2022-08-03 02:57:34[/create_time]2022-08-11 14:37:21[finished_time]1[reply_count]0[alue_good]天士凯数码17[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.17c8f90c.C_inmfsFoMTRIvs--Fr01Q.jpg?time=4651&tieba_portrait_time=4651[avatar]TA获得超过2282个赞[slogan]这个人很懒,什么都没留下![intro]61[view_count]

openssl是什么软件

openssl是一个开放源代码的软件库包软件。应用程序可以使用这个软件库包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个软件库包广泛被应用在互联网的网页服务器上。作为一个基于密码学的安全开发包,openssl提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及ssl协议,并提供了丰富的应用程序供测试或别的目的使用。openssl整个软件库包大概可以分成三个主要的功能部分,分别是ssl协议库、应用程序以及密码算法库。openssl的目录结构自然也是围绕这三个功能部分进行规划的。openssl特点:1、数据保密性。信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密钥来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密钥要用一个安全的方法传送。加密过的数据可以公开地传送。2、数据完整性。加密也能保证数据的一致性。例如:消息验证码,能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。3、安全验证。加密的另外一个用途是用来作为个人的标识,用户的密钥可以作为他的安全验证的标识。ssl是利用公开密钥的加密技术来作为用户端与服务器端在传送机密资料时的加密通讯协定。

[create_time]2023-04-26 20:30:20[/create_time]2023-04-16 00:00:01[finished_time]1[reply_count]0[alue_good]小谢数码问答[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.d3f823eb.xNxxY6Fgc3v1tkg5-quUYA.jpg?time=3549&tieba_portrait_time=3549[avatar]TA获得超过556个赞[slogan]这个人很懒,什么都没留下![intro]31[view_count]

win7如何安装openssl|win7安装openssl的方法

openssl是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议。很多win732位系统的用户在安装openssl的过程中都遇到了各种棘手的问题,走了很多弯路,那么在win7如何安装openssl呢?下面由小编给大家介绍一下win7安装openssl的方法。安装步骤:1、进入ActivePerl官网下载ActivePerl5.24.364位;2、ActivePerl下载并安装完成后,添加环境变量,打开“计算机属性--高级系统设置--环境变量”,选中“path”,点击“编辑”按钮,如果ActivePerl安装在C:\Perl64\目录下,则把“C:\Perl64\site\bin;C:\Perl64\bin;”加入其中,确认即可;3、按下“Win+R”快捷键打开运行,输入“cmd”点击确定打开命令提示符,然后输入“perl-v”,按回车,如果显示出下面内容,就说明是成功的;4、接下来要安装MicrosoftVisualStudio2010;5、将“C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\bin\amd64;”加入系统环境变量(系统在Path路径中可能已添加C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\bin,如果没有就添加上);6、安装NASM,完成安装后同样将其安装路径加入到到系统环境变量Path中.例如:“C:\Users\lenovo\AppData\Local\NASM”;7、然后下载OpenSSL,将其解压缩至磁盘根目录下;7、打开“开始”菜单,进入“所有程序”,找到在VisualStudioTools文件夹下的VisualStudiox64Win64命令提示(2010)工具;8、进入VisualStudio2010安装目录“C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\”,输入“cdC:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\bin\amd64”按下回车,然后再输入“vcvars64.bat”,按下回车执行命令。9、首先将命令指向你的openssl目录下,输入“cdC:\openssl”,按下回车;10、接着输入“perlConfigureVC-WIN64no-asm--prefix=C:\openssl”,按下回车;注:当你下载的openssl是高版本的话,如openssl-1.0.2g,需要在这里加上no-asm,表示不使用汇编,如果你不加上的话,在执行nmake命令时会出错。但是如果下载是openssl-1.0.1c,按理说不用加no-asm也可以成功。11、接着输入:perlConfigureVC-WIN64AperlConfigureVC-WIN64A--perfix=C:\openssl\win64按自己电脑中的路径来;12、然后输入命令:ms\do_nasm;13、输入命令:ms\do_win64a,按下回车;14、将命令提示符定位到C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\bin\amd64(VS2010安装位置),然后输入vcvars64.bat,会显示SettingenvironmentforusingMicrosoftVisualStudio2010x64tools.(必须要进行操作)15、再次将命令提示符定位到openssl源码目录下cdC:\openssl,输入命令:nmake-fms\nt.mak;执行完后会在openssl-1.0.1g目录下生成out32和tmp32两个文件夹,out32文件夹中会生成两个静态库和一些执行文件,tmp32文件夹中会生成相应的汇编文件。16、然后输入命令:nmake-fms\nt.maktest检查上一步编译是否成功,如果成功则最后显示“passedalltests”字样,如图:17、最后执行命令:nmake-fms\nt.makinstall操作完成!以上就是win7如何安装openssl|win7安装openssl的方法的全部内容了,不知道openssl如何安装的朋友可以试试以上步骤。


[create_time]2023-07-11 16:13:47[/create_time]2023-07-26 16:13:47[finished_time]1[reply_count]0[alue_good]瑞物评测室[uname]https://iknow-pic.cdn.bcebos.com/242dd42a2834349b8864ec1ddbea15ce37d3becc[avatar]百度认证:北京瑞评互动科技官方账号[slogan]这个人很懒,什么都没留下![intro]64[view_count]

linux-openssl命令行

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个人数字证书格式实现等功能。 项目地址 官方网址 手册 {% 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 %}

[create_time]2022-07-26 20:38:26[/create_time]2022-08-08 22:36:15[finished_time]1[reply_count]0[alue_good]世纪网络17[uname]https://himg.bdimg.com/sys/portrait/item/wise.1.486ca09d.jZ691Jzdj5pkPiv7Z8Tryg.jpg?time=710&tieba_portrait_time=710[avatar]TA获得超过4816个赞[slogan]这个人很懒,什么都没留下![intro]13[view_count]

SSL和SSH和OpenSSH,OpenSSL有什么区别

1、SSL(Secure Sockets Layer 安全套接层),它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。比如你访问https://servername 就是用了ssl协议,地址栏会出现小锁,双击就能查看ssl服务器证书的详细信息。TCP端口:443
2、SSH(Secure Shell 远程登陆用),安全可以和telnet比较一下,比如telnet传输用户密码是明文的,而SSH是加密的。明文的可以监听到。TCP端口22
3、OpenSSH是个SSH的软件,OpenSSH is the premier connectivity tool for remote login with the SSH protocol. linux/unix都用openssh软件提供SSH服务。简单来说,比如以前的Solaris系统默认不提供ssh服务,需要安装OpenSSH才行。


[create_time]2017-10-20 10:26:45[/create_time]2020-01-08 20:50:41[finished_time]2[reply_count]6[alue_good]Gworg[uname]https://cambrian-images.cdn.bcebos.com/ac965b2ab135d83e46bd589363d33326_1538018944226.jpeg[avatar]百度认证:Gworg官方账号,科技领域创作者[slogan]这个人很懒,什么都没留下![intro]2416[view_count]

openssl不是内部或外部命令,也不是可运行的程序和批处理文件.该怎么解决?

是程序处理文件出现错误。解决方法:1、单击选择下【属性】。2、接着鼠标点下界面里的【高级系统设置】,如图。3、接着鼠标立即选择下【环境变量】,如图。4、接着找到【系统变量——Path】,下方选择【编辑】。5、看到【%SystemRoot%】,点下它后右侧点【编辑】。6、接着我们在这名字后面加【;System32】就可以了。

[create_time]2022-09-29 10:17:11[/create_time]2022-10-14 10:17:11[finished_time]1[reply_count]0[alue_good]惠企百科[uname]https://pic.rmb.bdstatic.com/bjh/user/343825d09bee196abf9cec8955c23e80.jpeg[avatar]百度认证:北京惠企网络技术有限公司官方账号[slogan]惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。[intro]432[view_count]

上一篇:pixel c

下一篇:小城二月