安全相关概念: 加密 Encrypt 与 哈希 Hash
Encrypt
- 加密的概念:简单来说就是一组含有
参数 k的变换 E。信息 m通过变换 E得到c = E(m)。原始信息 m 为明文,通过变换得到的信息 c 为密文。从明文得到密文的过程叫做加密,变换 E为加密算法,参数 k称作秘钥。同一个加密算法,可以取不同的密钥,得出不同的加密结果。从密文 c恢复明文 m的过程称作解密,解密算法 D是加密算法 E的逆运算。解密算法也有参数,称作解密算法的秘钥。 - 加密的方式:
私钥密码 - 对称加密和公钥密码 - 非对称加密
私钥密码
又称对称密钥加密
这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。
私钥加密的秘钥是对称的,只要知道加密秘钥就能推出解密秘钥(所以称为 对称加密 )。
常见的对称加密算法有: DES、 3DES、 AES、 Blowfish、 IDEA、 RC5 和 RC6
公钥加密
概念
这种密码是非对称的,也就是说,不能从加密密钥推算出解密密钥,所以又称之为 非对称加密。加密密钥不需要保密,可以公开,称之为 公钥,只需要保守解密秘钥称之为 私钥。公钥和私钥是成对的。常见的非对称加密算法有: RSA、 Elgamal、 背包算法、 Rabin、 D-H、 ECC。
加密和认证
加密是保证数据的安全性认证是确保用户的真实性。只有通信双方确定是真正要通信的双方,通信才有进行下去的必要
加密过程
Bob将他的公钥传送给AliceAlice用Bob的公钥加密她的消息,然后传送给BobBob用他的私钥解密Alice的消息
** Alice 使用 Bob 的公钥进行加密, Bob 用自己的私钥进行解密**
认证过程
Alice 有一对公私钥, Alice 想让 Bob 知道自己是真实的 Alice,而不是假冒的,整个身份认证的过程如下:
Alice用她的私钥对文件加密,从而对文件签名Alice将签名的文件传送给BobBob用Alice的公钥解密文件,从而验证签名
** Alice 使用自己的私钥加密, Bob 用 Alice 的公钥进行解密**
思考
如何保证 公钥 的安全
对比

Hash
哈希 (Hash) 是将目标文本转换成具有 相同长度 的、 不可逆 的杂凑字符串(或叫做 消息摘要 ),而 加密 (Encrypt) 是将目标文本转换成具有 不同长度 的、 可逆 的 密文。
两者有如下重要区别:
- 哈希算法往往被设计成生成具有相同长度的文本,而加密算法生成的文本长度与明文本身的长度有关
- 哈希算法是不可逆的,而加密算法是可逆的