openSSL加密解密

一、前言

openSSL是套开放源代码的软件库包,实现了SSL与TLS协议。其主要库是以C语言所写成,实现了基本的加密功能。

OpenSSL可以运行在绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统),OpenVMS与 Microsoft Windows。它也提供了一个移植版本,可以在IBM i(OS/400)上运作。

openssl有三个部分组成、一是libcryto、这是一个具有通用功能的加密库、里面实现了众多的加密库、二是libssl、这个是实现ssl机制的、他是用于实现TLS/SSL的功能、三是openssl、是个多功能命令行工具、他可以实现加密解密、甚至还可以当CA来用、可以让你创建证书、吊销证书.

二、加密类型:

加密有两种类型:对称加密非对称加密

这里我们主要研究非对称加密:

[[email protected] ~]# cp /etc/fstab ./  #复制文件到当前目录
[[email protected] ~]# ls
anaconda-ks.cfg  fstab  install.log  install.log.syslog
[[email protected] ~]# cat fstab #查看文件

#
# /etc/fstab
# Created by anaconda on Fri Dec 26 18:09:56 2014
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_magine3562-lv_root /                       ext4    defaults        1 1
UUID=d507dc4f-dcaa-4311-9aa6-3392322b064c /boot                   ext4    defaults        1 2
/dev/mapper/vg_magine3562-lv_home /home                   ext4    defaults        1 2
/dev/mapper/vg_magine3562-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
[[email protected] ~]# openssl enc -des3 -in fstab -e -out fstab.des3 #加密
enter des-ede3-cbc encryption password:  #加密密码
Verifying - enter des-ede3-cbc encryption password:#再次输入密码
[[email protected] ~]# ls
anaconda-ks.cfg  fstab  fstab.des3  install.log  install.log.syslog
[[email protected] ~]# cat fstab.des3 #查看加密文件
.o..架 m.K⒈??.?[??ㄨ.?.Jd 玩y?ヂ二E19?)?.珊Ai+?聚.UG?ZieH
                                                                                  ??!.??G?Y?6?Q%[email protected]?.Z..G
碍.?苠	:c.	.?晔佣-?]?.M|.??戡Ov.?.
.‘{.#!?E<[^?*2??.c纨4Gs噎???/c>MX5??.
                                                     雷P?Q
                                                            ??.Q0Te现q.讹碗苯??h‘tX军蕙8.-S.??.?.Cr!熳?
                                                                                                                      伊.Q?.?z.O6?.V??w.(肷廴.;.??9?U]?.ㄛJ	蕤?.&U??{]O2??I._帅略x...?A
                                                                     ㄊ膻???.b,?..7p&H冤??
                                                                                                      Q.i*?".?.U饯6.??V<?.g?G?[+揿G?+FN??.?.师ゆ9M.g.P???"?}?廉\裁疔K
                                                 ..???簇-?Q..y..	...?E]?S..1?E
                                                                                                     ..w?.?.?RT.^?V?.←‘u泼..:.??镇?..缕!8?闰.f逄?:?..??WZI???q?笈K5WJK4.?.蜷镧#|=P4Jw??tw??Fd.?).?"??5..松?┅7?墀?m	X?ZaJ+S诛\vmv0.??.⒀?j?:?..R.?. q铙?V谨.
                                                   .?M瘐?Hkm?b?母.{.忸<?.厥.
                                                                                        _岗_
[[email protected] ~]# openssl enc -des3 -in fstab.des3 -d -out fstab1#解密
enter des-ede3-cbc decryption password:#输入加密时候的密码
[[email protected] ~]# cat fstab1#查看解密后的文件

#
# /etc/fstab
# Created by anaconda on Fri Dec 26 18:09:56 2014
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_magine3562-lv_root /                       ext4    defaults        1 1
UUID=d507dc4f-dcaa-4311-9aa6-3392322b064c /boot                   ext4    defaults        1 2
/dev/mapper/vg_magine3562-lv_home /home                   ext4    defaults        1 2
/dev/mapper/vg_magine3562-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

三、单向加密

   单向加密、也叫hash算法:(One-Way加密)
   用不生成数据指纹的、也叫数据摘要算法、输出是定长的、MD5是128位定长输出、SHA1定长输出160位、他的特性是不会出现碰撞的、每位数据只要有一位不一样就会产生巨大的变化、我们称这种为雪崩效应、常用的算法MD5、SHA1、SHA512、常用工具有sha2sum、md5sum、cksum、openssl dgst。
[[email protected] ~]# openssl dgst -md5 -hex fstab #提取特征码
MD5(fstab)= 653db83e6cdb396784a60b6ee2f9c2aa
[[email protected]ne356-2 ~]# md5sum fstab    #算法一样,结果也会是一样
653db83e6cdb396784a60b6ee2f9c2aa  fstab
时间: 2024-10-27 08:02:30

openSSL加密解密的相关文章

Openssl加密解密原理与命令使用--尚未完善

Openssl加密解密原理: 示例: 比如A与B通信发送数据: 加密原理: 在A把要发送的内容通过单向加密方式进行数据指纹计算,计算出数据指纹后,会用自己的私钥加密数据指纹,并把加密的数据指纹添加到原数据的后面.然后对整个数据(原数据+数据指纹)进行对称加密算法进行计算(让明文转换成密文),得出的数据为整个数据的密码,再用B的公钥进行这个密码进行加密,并放到这个数据的后面一并发给B. 解密原理: 1.B用自己的私钥能够解密---------至此说明数据保密的. 2.B用私钥解密出来的密码,去解密

openssl 加密 解密 应用及CA的实现

一 现在的加密/解密技术主要有三种:对称加密,公钥加密,和单向加密 对称加密:指的是加密方和解密方使用的是同一个密钥 特性: 1 加密.解密使用同一个秘钥: 2 将原始数据分割成固定大小的块,逐个进行加密 算法:DES  3DES  AES 公钥加密:秘钥是成对出现 公钥:公开给所有人: pubkey 私钥:自己留存,必须保证去私密性:secret key 特点:用公钥加密的数据只能用与之配对的私钥解密,反之亦然: 特性: 数字签名:用于接收方确认发送方的身份 秘钥交换:发送方用对方的公钥加密一

openssl加密解密与创建CA

前言 目前网络上比较流行的服务类协议如http,ftp,smtp,pop3等本身是不具备加密解密功能的都明文传输的,在早期网络设计的初期由于服务器的数量非常少,当然网络的安全也是不会被重视的.但随着互联网的不断发展,安全方面也成为人们比较关心的问题之一,后来网警公司先为http研发了一种可被调用的公共功能的库,这个库就被放在了TCP/IP模型的传输层与应用层之间,是一个半层的库,任何不具备加解密的程序在研发时可调用这个库也可以不用调这个库,用与不用都可以实现传输功能,这个库就叫做SSL;正如我们

linux下加密解密之OpenSSL

一.为什么要加密 在网络这个大森林里面,所有的数据传输都是不安全的,在数据传输中必须要给数据加密,以防止被别人劫持盗取 二.数据在网络中怎么传输 数据从发送出去到目的地都经过了哪些步骤? 1.ISO国际标准组织定义了数据在网络传输中的七层模型:数据从 应用层--会话层--表达层--传输层--网络层--数据链路层--物理层 逐层封装传输,数据到达最底层后传送出去,到达目标主机后在从底层往上层传输并逐层解压封装. 2.在TCP/IP定义的四层模型里,数据传输也是一样的道理,应用层--传输层--网络层

openssl加密、解密及建立私有CA

OpenSSL:俗称安全套接字 它可以实现数据加密: SSL全称为:Secure Socket Layer可以在Internet上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性,SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证.SSL协议要求建立在可靠的传输层协议(TCP)之上.SSL协议在应用层协议通信之前就已经完成加密算法.通信密钥的协商及服务器认证工作.在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性. 一.Op

C/C++使用openssl进行摘要和加密解密(md5, sha256, des, rsa)

openssl里面有很多用于摘要哈希.加密解密的算法,方便集成于工程项目,被广泛应用于网络报文中的安全传输和认证.下面以md5,sha256,des,rsa几个典型的api简单使用作为例子. 算法介绍 md5:https://en.wikipedia.org/wiki/MD5 sha256:https://en.wikipedia.org/wiki/SHA-2 des: https://en.wikipedia.org/wiki/Data_Encryption_Standard rsa: htt

加密/解密&利用OpenSSL构建私有CA

在互联网安全及个人隐私状况日益严峻的今天,加密技术变得尤为重要并且不可或缺.在密码雪中,加密是指将明文信息隐匿起来,使之在缺少特殊信息时不可读.本文所讲的主要是在互联网传输数据时所用的加密方式.我们都知道OSI&TCP/IP网络参考模型,通常我们会把这两个模型分为通信子网和资源子网两部分,但是在构建网络的初期,信息从发送端送达到接受端都非常困难所以在设计模型之初并没有考虑过多的安全因素,以至于通信子网和资源子网都没有涉及到数据加密的内容.为了解决这个问题,网景公司在资源子网和通信子网之间添加了半

加密 解密过程详解及openssl自建CA &nbsp;

            加密 解密过程详解及openssl自建CA 为了数据信息能够安全的传输要求数据要有一定的安全性那么数据的安全性包含哪些方面的特性呢?    NIST(美国信息安全署)做了如下的定义:    保密性:       1,数据的保密性 指的是数据或隐私不向非授权者泄漏                   2,隐私性  信息不被随意的收集    完整性:       1,数据的的完整性:信息或程序只能被指定或授权的方式改变不能被随意的             修改        

加密解密基础及openssl构建私有CA初步

方今社会,互联网的普及给我们的生活带来了极大的便利,但任何事物都有其两面性:窗户打开了,阳光和新鲜的空气进来了,苍蝇也进来了.如何在利用互联网带来便利的同时,又尽量规避其风险,保护自己网络通信中信息的安全及私密,成为了一个热门话题,下面本文将主要探讨两个方面的问题,不当之处还请各位前辈不吝斧正. (一)加密解密基础 首先要搞清楚的一个问题是,我们平时的网络通信存在哪些风险呢?目前互联网上常见的攻击方式有两种:主动攻击和被动攻击.主动攻击包括报文伪装.重复.消息篡改.拒绝服务等:被动攻击主要是监听