加密算法的简介
1 目前的加密算法 大概分4类,严格的来说摘要函数不和转码不算加密 方式,这个在这里就不谈论了,就像 番茄是 蔬菜还是水果,没有个一定的说法。
- 对称加密
- 非对称加密
- 摘要函数
- 转码
对称加密 如:DES AES ,是一种 加密 和解密都是用相同的秘钥的加密算法。 AES 加密 比DES 加密新,也更加难破解,加密的速度也更加高。所以这两种 推荐 使用AES。
非对称加密:比如 RSA ECC,非对称加密,加密和解密使用不同的秘钥,两个秘钥其中一个叫做私钥,私人所有,不告知任何人,另一个叫做公钥,公钥可以给于需要它的任何人,公钥和私钥都可以加密数,
公钥加密的数据只有对应的私钥才能解密,私钥加密的数据只有公钥才能解密。公钥加密的不能使用公钥解密,私钥加密的不能使用私钥解密。
所以私钥加密能保证数据不被篡改(只有一个人有加密的数据的能力),公钥加密能保证数据不被修改(只有持有私钥的那个人能解密数据)。
公钥加密强调数据不能被泄露(加密解密),私钥加密强调数据不可被篡改(验签解签)。
ECC 相比 RAS 加密速度更快,密文数据更小,抗攻击能力更强,ECC对引用于移动端。
摘要函数: 代表MD5 ,摘要函数是不可逆的,会丢失原文。所以不能复原。是通过一定的算法在原文中抽取出一点段数据,类似文章摘要一样,摘要代表着原文,
但是因为MD5的长度限定,所以原文的肯定比 密文个数多(原文无穷无尽,密文只有那么多个) ,同一个 密文必定对应着多个 原文,但是 一般是遇不到的。 MD5 的特点,丢失原文,不可逆,密文等长。
MD5加密后的值是128bit的,按4位二进制组合成一个十六进制,所以最后出来的十六进制字符串是32个。
转码: 代表 base64 把 ASCII对应的 256 个字符 转成 64 个基础的,可见的字符,字符长度是8bit,用大小 的 8bit 一个字符(8bit但是它的有效值只有 64 种 ,只能代表6bit的数据) 去代替原文的 6bit 的数据,所以转码以后会变成长。 6和8 的公倍数24,但原文不足 3 个 字符的时候 ,密文需要使用=来位
备注 base64 的 64 个字符A-Z,a-z,0-9 ,+ 和 / ,base64safe 是吧 +换成- ,/ 换成 _ ,来应对 某些不嫩更实用 + 和 / 的场景。
URL转码:
把非ASCII以外的字符和一些特殊字符替固定换成%两个16进制格式,表示一个字节,一个16进制可以表示半个字节,一个完整的字节需要2个16进制表示。比如 一个汉字 中国,UTF8编码格式下各占3个字节。%E4%B8%AD%E5%9B%BD其中 %E4%B8%AD 表示中的三个字节,%E5%9B%BD表示国的三个字节。
能耍的时候就一定要耍,不能耍的时候一定要学。
--天道酬勤,贵在坚持posted on 2018-07-06 17:18 zhangyukun 阅读(219) 评论(0) 编辑 收藏 举报