Linux下使用openssl库编程实现对称加密解密

一、背景

需求是对文件内容加密解密,对称秘钥方式有DES、3DES等方法,这样加密方与解密方可以双方约定好秘钥就能完成文件的安全传输;

二、相关知识

2.1 对称加密算法DES

概念:DES数据加解密就是将数据按照8个字节为单位进行DES加密或解密得到一段8个字节的密文或者明文,不足8个字节的以0x00或0xFF进行补齐
应用场景:DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。


2.2 ECB、CBC、CFB、OFB模式的区别

  1. ECB:Electronic Code Book,电子密码本模式,最基本的加密模式,也就是通常理解的加密,相同的明文将永远加密成相同的密文,无初始向量,容易受到密码本重放攻击,一般情况下很少用;关键在于各段分组数据是独立计算的,加密的最小单位仍然是8个字节;
  2. CBC:Cipher Block Chaining,密码分组链接,明文被加密前要与前面的密文进行异或运算后再加密,因此只要选择不同的初始向量,相同的密文加密后会形成不同的密文,这是目前应用最广泛的模式。CBC加密后的密文是上下文相关的,但明文的错误不会传递到后续分组,但如果一个分组丢失,后面的分组将全部作废(同步错误)。CBC则是对各段分组数据之间有所关联,可以理解为比ECB多了异或运算的步骤;
  3. CFB:Cipher FeedBack,密码反馈,类似于自同步序列密码,分组加密后,按8位分组将密文和明文进行移位异或后得到输出同时反馈回移位寄存器,优点最小可以按字节进行加解密,也可以是n位的,CFB也是上下文相关的,CFB模式下,明文的一个错误会影响后面的密文(错误扩散)。
  4. OFB:Output Feedback,输出反馈,将分组密码作为同步序列密码运行,和CFB相似,不过OFB用的是前一个n位密文输出分组反馈回移位寄存器,OFB没有错误扩散问题。

2.3 3DES算法

3DES算法顾名思义就是3次DES算法,其算法原理如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值