OpenSSL:开源项目

三个组件:

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

libcrypto: 加密算法库,包openssl-libs[root@centos7-4 data]# openssl-libslibssl:加密模块应用库,实现了ssl及tls,包nss[root@centos7-4 data]# rpm -ql nss

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

openssl version:程序版本号

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

标准命令:

enc, ca, req, ...[root@centos7-4 data]# rpm -ql openssl

/etc/pki/CA

/etc/pki/CA/certs

/etc/pki/CA/crl

/etc/pki/CA/newcerts

/etc/pki/CA/private

usr/bin/openssl

openssl 命令支持对称加密,非对称加密解密等

用法:1、交互式[root@centos7-->08:52:30~]#openssl

OpenSSL> ?

openssl:Error: '?' is an invalid command.

2、非交互式

openssl + 命令 命令.....

对称加密:工具: openssl enc, gpg

算法: 3des, aes, blowfish, twofish

enc命令:帮助: man enc

加密:

openssl enc -e -des3 -a -salt -in testfile

-out testfile.cipher

解密:openssl enc -d -des3 -a -salt –in testfile.cipher

-out testfile

openssl ?

加密例子:

第一步:[root@centos7-->14:47:26/app]#openssl enc -e -des3 -a -salt -in fstab -out fstab.cip

enter des-ede3-cbc encryption password:

Verifying - enter des-ede3-cbc encryption password:

第二步:[root@centos7-4 data]# base64 -d test.cip

######使用base64 -d fstab.cip 编码转换成二进制####

第三步:

解密[root@centos7-4 data]# openssl enc -d -des3 -a -salt -in test.cip -out test2

enter des-ede3-cbc decryption password:

单向加密:工具: md5sum, sha1sum, sha224sum,sha256sum…

openssl dgst

dgst命令:帮助: man dgst

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

openssl dgst -md5 testfile

md5sum /PATH/TO/SOMEFILE

例子:

md5sum test[root@centos7-4 data]# md5sum test

cf4676656ace92c1d8e1edf2f2ecbf6a test[root@centos7-4 data]# openssl dgst -md5 test

MD5(test)= cf4676656ace92c1d8e1edf2f2ecbf6a

因为算法一样,所以得出的哈希值也相同

生成用户密码:passwd命令:

帮助: man sslpasswd

openssl passwd -1 -salt SALT(最多8位)

openssl passwd -1 –salt centos

生成随机数:帮助: man sslrand

openssl rand -base64|-hex NUM

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

man sslpasswd

例子:

openssl passwd

默认使用: -crypt加密

例子1、[root@centos7-4 data]# openssl passwd

Password:

Verifying - Password:

NNiotT0rFp20E

例子2、[root@centos7-4 data]# openssl passwd -1

Password:

Verifying - Password:

$1$NfgvMVBF$g/fovTmTnv5B2OUKJvFr21

例子3、[root@centos7-4 data]# openssl passwd -1 -salt centos

Password:

$1$centos$Uq6E6Wp5SDZYbs6MCmamP0

生成随机数

例子:openssl rand -base64 12[root@centos7-4 data]# openssl rand -base64 12

WdOrd0ZhcRlLAnJ+

例子:echo "ab" |base64 2^6=64[root@centos7-4 data]# echo -n "ab" |base64

YWI=

64个字符表示系统中的二进制数

[root@centos7-4 data]# echo -n "abc" |base64 > abc.base64

[root@centos7-4 data]# cat abc.base64

YWJj

base64编码本身不加密,可以使用base64  -d  反向解析成源码[root@centos7-4 data]# base64 -d abc.base64

abc

随机口令多少位:openssl rand -base64 24|tr -d '/+' |head -c12

生成随机口令 :cat /dev/urandom |tr -dc 'A-Za-z0-9' |head -c 12

[root@centos7-4 data]# openssl rand -hex 10

21840dfde41df91375a6

openssl命令 对称加密

公钥加密:算法: RSA, ELGamal

工具: gpg, openssl rsautl( man rsautl)

数字签名:算法: RSA, DSA, ELGamal

密钥交换:算法: dh

DSA: Digital Signature Algorithm

DSS: Digital Signature Standard

RSA:

生成密钥对儿: man genrsa

生成私钥openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS

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

openssl rsa -in test.key –out test2.key 将加密key解密

从私钥中提取出公钥openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE

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

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

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

/dev/urandom:从熵池返回随机数;随机数用尽,会利用软件生成伪随机[root@centos7-4 data]# cat /dev/random |tr -dc "A-Za-z0-9" |head -c 12

Wwy3w7QwI9hk

[root@centos7-4 data]# cat /dev/urandom |tr -dc "A-Za-z0-9" |head -c 12

AisDjYYIN3z7

例子:生成私钥

1、不加密的私钥[root@centos7-4 data]# openssl genrsa -out test.key 1024

Generating RSA private key, 1024 bit long modulus

..++++++

........................++++++

e is 65537 (0x10001)

2、使用dns3加密私钥[root@centos7-4 data]# (umask 066;openssl genrsa -out test2.key -des3 2048)

Generating RSA private key, 2048 bit long modulus

.......................................+++

..............................................................................................................+++

e is 65537 (0x10001)

Enter pass phrase for test2.key:

Verifying - Enter pass phrase for test2.key:

解密私钥[root@centos7-4 data]# openssl rsa -in test2.key -out test22.key

Enter pass phrase for test2.key:

writing RSA key

[root@centos7-4 data]# ls

test2.key test22.key ###解密后出来的test22私钥文件[root@centos7-4 data]# openssl rsa -in test2.key -pubout -out test2.pub

Enter pass phrase for test2.key:

writing RSA key

[root@centos7-4 data]# ls

test2.key test2.pub ###从私钥中提取出的公钥

linux 对称加密命令,linux安全和加密篇(三)—openssl工具和CA证书相关推荐

  1. linux新建自定义命令,Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用"alias"命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. ...

  2. linux shell 未找到命令,未找到linux问题setenv命令(linux issue setenv command not found)

    未找到linux问题setenv命令(linux issue setenv command not found) 我在Linux中开发了一个Tcl / Tk脚本工具. 为了运行该工具,每次需要在she ...

  3. Linux加密解密 及使用openssl工具实现CA

    互联网迅速发展的今天,数据安全凸显其重要性 1.常见Linux加密方式 对称加密 公钥加密(非对称加密) 单向加密 2.详解加密解密 2.1 对称加密 对称加密算法: DES(56bits) AES( ...

  4. linux 使用scp命令,Linux scp命令使用实例汇总

    Linux下要实现两台服务器之间的文件传送,使用scp命令就可以了,在Linux系统中,scp命令的用法简单而又实用,系统之家就给大家介绍下如何使用scp命令进行Linux服务器之间的文件传送. sc ...

  5. linux中用less命令,Linux中使用zcat,zmore和zless命令

    压缩是指将文件保存在存档中并减小文件大小.Gzip aka Gunzip是Linux中的命令,用于压缩和解压缩文件.因此,以防万一,您使用gzip压缩了一个非常大的文件,而您只想查看文件的内容.由于在 ...

  6. linux 安装删除命令,Linux如何使用命令行卸载安装包

    导读 严格地说,Linux是内核.Linux发行版由Linux内核.安装脚本.shell.编译器.桌面和其他组件组成.因此,卸载包或软件的Linux命令取决于Linux发行版的名称和类型.本文说明如何 ...

  7. linux下dump命令,Linux dump命令

    # Linux dump命令 [![Linux 命令大全](/images/1590082124592.gif "Linux 命令大全") Linux 命令大全](/queryGr ...

  8. linux的编程命令,linux编程常用命令

    学习linux编程最基本的就是要掌握常用的编程命令,下面由学习啦小编为大家整理了linux编程常用命令相关知识,希望大家喜欢! linux编程常用命令1.编译应用程序 make -f makefile ...

  9. linux权限切换命令,Linux基础常用命令汇总(权限操作)

    权限操作 权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w. ...

最新文章

  1. java监听组合按键_js监听组合按键
  2. 各种系统启用snmp协议的方法
  3. Android开发之自定义Dialog二次打开报错问题解决
  4. 开发日记-20190609 关键词 记录一次失败,感悟,畅想未来
  5. cv::parallel_for_ 的一个例子
  6. 8个月打磨,一份送给程序员的「分布式系统」合集
  7. 注意:ORACLE 11G ADG RAC 这个情况下并不能高可用
  8. pythondd_windows7下安装python环境和django
  9. [蓝桥杯]试题 基础练习 芯片测试
  10. HTML-参考手册: HTML 符号实体
  11. 「津津乐道播客」#288 编码人声:只拿副业来赚钱,你可能亏大了
  12. android表格布局介绍,TableLayout表格布局详解
  13. java 清除文本框数据_Java 添加、读取、删除Excel文本框
  14. vue 部署上线清除浏览器缓存
  15. prometheus 阿里云短信告警
  16. java画一张笑脸_java swing应用(1):画一个眨眼珠的笑脸
  17. 高端装备的AC主轴头结构
  18. ORA-39325 ORA-39112
  19. 修改Vue项目网页标题和ico
  20. sqlserver快捷键设置

热门文章

  1. 【朝花夕拾】朝花夕拾-Robot Framework实战演练之开篇
  2. 多线程编程核心技术总结(读周志明书籍的总结)
  3. JS里的for…in和for…of的用法
  4. php表格增加一行数据,Excel表格如何增加一行
  5. python 入门总结(一)
  6. 看了一遍蝴蝶效应1,在看到了一篇很好的《蝴蝶效应1》影评
  7. 十年带队经验,万字长文分享:如何管理好一个程序员团队?
  8. Ghost XP SP2下如何安装IIS的解决方案
  9. 信道检测手机软件 ios_【安卓+iOS】卧龙影视,老牌观影神器上架苹果TF版,支持双端,限时下载!...
  10. [n年以前的诗] 回想那一次