c++字符加密_知道了这些数据加密算法,再也不用担心资料泄露了

加密算法的类型,按其对称性分类:对称加密算法。在这种方式中,在加密算法和解密算法之间存在着一定的相依关系, 即加密和解密算法往往使用相同的密钥;或者在知道了加密密钥 Ke 后,就很容易推导出解 密密钥 Kd。该算法中的安全性在于双方能否妥善地保护密钥,因而把这种算法称为保密密 钥算法。该算法的优点是加密速度快,但密钥的分配与管理复杂。非对称加密算法。

4054c2899484760c45a61e09595e80e8.png

这种方式的加密密钥 Ke 和解密密钥 Kd 不同,而且难以从 Ke 推 导出 Kd 来。可以将其中的一个密钥公开而成为公开密钥,因而把该算法称为公开密钥算法。 用公开密钥加密后,能用另一把专用密钥解密;反之亦然。该算法的优点是密钥管理简单, 但加密算法复杂。按所变换明文的单位分类 序列加密算法。该算法是把明文 P 看做是连续的比特流或字符流 P1,P2,P3,…, 在一个密钥序列 K=K1,K2,K3,…的控制下,逐个比特(或字符)地把明文转换成密文。具体可表达成: EK(P)=EK1(P1),EK2(P2),EK3(P3)。

b1f069637b8b03d5e65fd39666caa800.png

这种算法可用于对明文进行实时加密。分组加密算法。该算法是将明文 P 划分成多个固定长度的比特分组,然后,在加密 密钥的控制下,每次变换一个明文分组。最著名的 DES 算法便是以 64 位为一个分组进行加 密的。 4.基本加密方法 虽然加密方法有很多,但最基本的加密方法只有两种,即易位法和置换法,其它方法 大多是基于这两种方法所形成的。

468f73c5a38cdb778a5cee45ee953d52.png

易位法 易位法是指按照一定的规则,重新安排明文中的比特或字符的顺序来形成密文,而字 符本身保持不变。按易位单位的不同又可分成比特易位和字符易位两种易位方式。前者的 实现方法简单易行,并可用硬件实现,主要用于数字通信中;而后者即字符易位法则是利 用密钥对明文进行易位后形成密文。

2ea22e046b4725b00b9352ad59ef0863.png

字符易位的具体方法是:假定有一密钥 MEGABUCK, 其长度为 8,则其明文是以 8 个字符为一组写在密钥的下面,如图 9-2 所示。按密钥中字母 在英文字母表中的顺序来确定明文排列后的列号。如密钥中的 A 所对应的列号为 1, B 为 2, C 为 3,E 为 4 等。然后再按照密钥所指示的列号,先读出第 1 列中的字符,读完第 1 列之 后,再读出第 2 列中的字符……。这样,即完成了将明文 Please transfer …转换为密文 AFLLSKSOSELAWAIA …的加密过程。

7aaac53505656c288c7e6e232fac8d41.png

置换法 置换法是按照一定的规则,用一个字符去置换(替代)另一个字符来形成密文。最早由朱 叶斯·凯撒(Julius Caeser)提出的算法非常简单,它是将字母 a,b,c,…,x,y,z 循环右 移三位后,形成 d,e,f,…,a,b,c 字符序列,再利用移位后的序列中的字母去分别置 换未移位序列中对应位置的字母,即利用 d 置换 a,用 e 置换 b 等。凯撒算法的推广是移动 K 位。单纯移动 K 位的置换算法很容易被破译,比较好的置换算法是进行映像。例如,将 26 个英文字母映像到另外 26 个特定字母中,见图 9-3 所示。利用置换法可对 attack 进行加密,使其变为 QZZQEA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值