黑马程序员技术交流社区
标题:
【成都校区】常见加密方式
[打印本页]
作者:
Songbem
时间:
2019-1-24 13:44
标题:
【成都校区】常见加密方式
DES
(Data Encryption Standard):
对称算法
,
数据加密标准
,速度较快,适用于加密大量数据的场合;
3DES
(Triple DES):是基于DES的
对称算法
,对一块数据用三个不同的
密钥
进行三次加密,强度更高;
RC2
和
RC4
:
对称算法
,用变长
密钥
对大量数据进行加密,比 DES 快;
IDEA
(International Data Encryption Algorithm)
国际数据加密算法
,使用 128 位
密钥
提供非常强的安全性;
RSA
:由 RSA 公司发明,是一个支持变长
密钥
的公共密钥
算法
,需要加密的文件块的长度也是可变的,
非对称算法
; 算法如下:
首先, 找出三个数, p, q, r,
其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数......
p, q, r 这三个数便是 private key
接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1).....
这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了.....
再来, 计算 n = pq.......
m, n 这两个数便是 public key
DSA
(Digital Signature Algorithm):
数字签名
算法
,是一种标准的 DSS(
数字签名标准
),严格来说不算加密算法;
AES
(Advanced Encryption Standard):
高级加密标准
,
对称算法
,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法;
BLOWFISH
,它使用变长的
密钥
,长度可达448位,运行速度很快;
MD5:严格来说不算加密
算法
,只能说是摘要算法;
对
MD5算法
简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5
算法
中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,如今信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。(可参见MD5
算法
词条)
PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及
数字签名
、
数字信封
的格式等方面的一系列相关协议。
SSF33,SSF28,SCB2(SM1):国家密码局的隐蔽不公开的商用
算法
,在国内民用和商用的,除这些都不容许使用外,其他的都可以使用;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2