Openssl详细用法:

OpenSSL 是一个开源项目,其组成主要包括一下三个组件:

  • openssl:多用途的命令行工具

  • libcrypto:加密算法库

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

openssl可以实现:秘钥证书管理、对称加密和非对称加密 。

1、对称加密

对称加密需要使用的标准命令为 enc ,用法如下:

 openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64]
[-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md]
[-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

常用选项有:

 -in filename:指定要加密的文件存放路径
 
 -out filename:指定加密后的文件存放路径
 
 -salt:自动插入一个随机数作为文件内容加密,默认选项
 
 -e:可以指明一种加密算法,若不指的话将使用默认加密算法
 
 -d:解密,解密时也可以指定算法,若不指定则使用默认算法,但一定要与加密时的算法一致
 
 -a/-base64:使用-base64位编码格式
 加密:]# openssl enc -e -des3 -a -salt -in fstab -out fstab.bak
解密:]# openssl enc -d -des3 -a -salt -in fstab.bak -out fstab

2、单向加密

单向加密需要使用的标准命令为 dgst ,用法如下:

 openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary]
[-out filename] [-sign filename] [-keyform arg] [-passin arg] [-verify filename] [-prverify filename] [-signature filename] [-hmac key] [file...]

常用选项有:

[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] :指定一种加密算法

-out filename:将加密的内容保存到指定文件中

示例如下:

 openssl dgst -md5 f1 等价于md5sum f1

单向加密除了 openssl dgst 工具还有: md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum

示例如下:

 shs512sum fstab
md5sum fstab

3、生成密码

生成密码需要使用的标准命令为 passwd ,用法如下:

 openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}

常用选项有:

-1:使用md5加密算法

-salt string:加入随机数,最多8位随机数

-in file:对输入的文件内容进行加密

-stdion:对标准输入的内容进行加密

示例如下:

 openssl passwd -1 -in fstab -salt 11111

4、生成随机数

生成随机数需要用到的标准命令为 rand ,用法如下:

 openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num

常用选项有:

-out file:将生成的随机数保存至指定文件中

-base64:使用base64 编码格式

-hex:使用16进制编码格式

示例如下:

 (umask 077;openssl genrsa -out test.key -des3 2048)  生成test.key私钥文件并以des3的算法加密

 make /data/test.key    或者直接切换至cd /etc/pki/tls/certs下生成私钥,里边有一个makefile文件就可以自动生成私钥文件
1
openssl rsa -in test.key -out test2.key.bak 对test.key 私钥进行解密并导出文件起名叫test2.key.bak

5、生成秘钥对

首先需要先使用 genrsa 标准命令生成私钥,然后再使用 rsa 标准命令从私钥中提取公钥。

genrsa 的用法如下:

 openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]

常用选项有:

-out filename:将生成的私钥保存至指定的文件中

-des|-des3|-idea:不同的加密算法

numbits:指定生成私钥的大小,默认是2048

一般情况下秘钥文件的权限一定要控制好,只能自己读写,因此可以使用 umask 命令设置生成的私钥权限,示例如下:

 (umask 077;openssl genrsa -out test.key -des3 2048)  生成test.key私钥文件并以des3的算法加密

 make /data/test.key    或者直接切换至cd /etc/pki/tls/certs下生成私钥,里边有一个makefile文件就可以自动生成私钥文件

openssl rsa -in test.key -out test2.key.bak 对test.key 私钥进行解密并导出文件起名叫test2.key.bak

rsa的用法如下:

 openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg]
[-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]

常用选项:

-in filename:指明私钥文件

-out filename:指明将提取出的公钥保存至指定文件中

-pubout:根据私钥提取出公钥

示例如下:根据私钥取出公钥

 openssl rsa -in test.bak -pubout -out test.pubkey

随机数生成器:伪随机数字 键盘和鼠标,块设备中断

/dev/random:仅从熵池返回随机数;随机数用尽,阻塞

/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机 数,非阻塞

示例:

tr -dc 'a-zA-Z0-9' < /dev/urandom 将生成的随机大小写字母、数字全部进行打印

tr:参数解释

 -c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。

openssl的用法的更多相关文章

  1. openssl命令用法

    openssl命令 配置文件:/etc/pki/tls/openssl.cnf 命令格式: openssl command [ command_opts ] [ command_args ] 众多子命 ...

  2. CA、证书及openssl用法

    CA和证书 摘要:涉及到网络安全这一块,想必大家都听过CA吧.像百度.淘宝.京东等这些知名网站,每年都要花费一笔money来买CA证书.但其实简单的企业内的CA认证,我们自己就可以实现,今天我就讲解一 ...

  3. Openssl与私有CA搭建

    转自:http://www.tuicool.com/articles/aURnim 随着网络技术的发展.internet的全球化,信息共享程度被进一步提高,各种基于互联网的应用如电子政务.电子商务日益 ...

  4. 安全和加密——openssl及自建CA

    一.对称加密算法 对称加密:加密和解密使用共用一个秘钥 特点 加密.解密使用同一个秘钥,效率高: 将原始数据分割成固定大小的块,逐个进行加密 缺点 密钥过多,密钥需要分发 数据来源无法确认 1. 使用 ...

  5. c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library

    介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Soc ...

  6. 支持https的压力测试工具

    支持https的压力测试工具 测试了linux下的几种压力测试工具,发现有些不支持https,先简单总结如下: 一.apache的ab工具 /home/webadm/bin/ab -c 50 -n 1 ...

  7. nginx https 配置样例

    站点nginx https 配置模板 第一章 nginx 支持https 配置样例 其他 相关链接地址 第一章 nginx 支持https 配置样例 说明:https 段配置参数说明 Server 段 ...

  8. 源码编译安装nginx

    安装依赖软件 1.安装编译工具gcc gcc是一个开源编译器集合,用于处理各种各样的语言:C.C++.Java.Ada等,在linux世界中是最通用的编译器,支持大量处理器:x86.AMD64.Pow ...

  9. openssl用法详解

    OpenSSL 是一个开源项目,其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl及tls openssl可以 ...

随机推荐

  1. uni-app开发经验分享二十一: 图片滑动解锁插件制作解析

    在开发用户模块的时候,相信大家都碰到过一个功能,图片滑动解锁后发送验证码,这里分享我用uni-app制作的一个小控件 效果如下: 需要如下图片资源 template <template> ...

  2. 翻译 - ASP.NET Core 基本知识 - Web 主机 (Web Host)

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/web-host?view=aspnetcore-5.0 ASP. ...

  3. tornado大全(甩锅版)

    tornado简介 tornado是Python界中非常出名的一款Web框架,和Flask一样它也属于轻量级的Web框架. 但是从性能而言tornado由于其支持异步非阻塞的特性所以对于一些高并发的场 ...

  4. 同步与异步 Python 有何不同?

    你是否听到人们说过,异步 Python 代码比"普通(或同步)Python 代码更快?果真是那样吗? 1 "同步"和"异步"是什么意思? Web 应用 ...

  5. 【Azure Developer】在Azure Resource Graph Explorer中查看当前订阅下的所有资源信息列表并导出(如VM的名称,IP地址内网/公网,OS,区域等)

    问题描述 通过Azure的Resource Graph Explorer(https://portal.azure.cn/#blade/HubsExtension/ArgQueryBlade),可以查 ...

  6. Win+R 快速启动程序

    将某个程序的可执行C:\Program Files\Oracle\VirtualBox\VirtualBox.exe 或其快捷键 放入 某个自建的快捷键集合文件夹,可以自定义命名 如 vb 将其添加到 ...

  7. CSRF Laravel Cross Site Request Forgery protection¶

    Laravel 使得防止应用 遭到跨站请求伪造攻击变得简单. Laravel 自动为每一个被应用管理的有效用户会话生成一个 CSRF "令牌",该令牌用于验证授权用 户和发起请求者 ...

  8. okhttp踩坑

    ResponseBody.string()   平常我们用的客户端http调用工具一般是RestTemplate,HttpClient,okhttp,以前使用过前两者,没咋接触过okhttp,我看公司 ...

  9. 高性能Web框架

    不管 Web 前端架构运行机制还是 Web 后端架构中,网络是必不可少的且占分量很重.用户通过网络访问 Web 服务器,Web 后端架构中各种服务之间通过网络来进行通信和协作,网络是现代 Web 应用 ...

  10. docker 运用

    本文采用centos7,记录docker的简单运用方式 https://www.runoob.com/docker/docker-container-usage.html 1.安装odcker 2.启 ...