加密解密概念:是一个信息干扰的过程,保证固定的人才可以看到你的信息
把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不用的手段还原(解码)
作用:
保密性:信息在传输时不被泄露
完整性:信息在传输时不被篡改
有效性:信息的使用者是合法的
常用的加密当时有三种分别是:
对称加密:指数据加密和解密使用相同的密钥 数据的机密性: DES,AES
非对称加密:也叫公钥加密,指数据加密和解密使用不同的密钥 密钥对儿 身份验证 DSA,RSA
单向加密:指只能加密数据,而不能解密数据 数据的完整性 MD5,SHA系列算法
二,字符编码
进制:一个字节是计算机内存的最小单位,由8个二进制为组成,2个16进制组成
F =0000 1111 = 15
FF = 1111 1111 =255
进制间转换方法:
十进制和二进制
>>>bin(255) #十进制转二进制
'0b11111111'
>>>int('0b11111111',2) #二进制转十进制
255
十进制与十六进制
>>>hex(255) # 十进制转十六进制
'0xff'
>>>int('0xff',16) #十六进制转十进制
255
字符和unicode编号是一 一 对应的关系,世界上的每个字符都对应这一个unicode
编号,根据编号可以进行多种编码。utf-8 是最常用的编码格式
>>> '中',encode('utf-8') #汉字中utf -8 编码
b'\xe4\xb8\xad'
三,Base64编码原理
概念:
Base64就是一种基于64个可打印字符来表示二进制数据的方法
作用:
1.在参数传输的过程中经常遇到一种情况:使用全英文的没有问题,但是一涉及到
中文就出现乱码的情况
2.网络上传输的字符并不全是可打印的字符,比如二进制文件,图片等,Baes64的
出现就是为了解决这类问题,它基于64个可打印的字符来表示二进制的数据的一种方法
ASCII码
>>>ord ('M’)
77
>>>ord('a')
97
ASCII 转二进制
>>>bin(77)
'0b1001101
>>>bin(97)
'0b1100001
六个二进制一组
>>>int ('010011',2)
19
大多数编码都是由字符串转化成二进制的过程,而Base64的编码则是从二进制转换为字符串。常规恰恰相反:
Base64编码主要用于传输,存储,表示二进制领域,不能算上加密,只是无法直接看到明文
。也可以通过打乱Base64编码来进行加密。
4.单向加密
概念:单向加密是指只能对明文数据进行加密,而不能解密数据
常用方法有: MD5,SHA
1.md5的长度默认为128bit,也就是128个0和1的二进制串
2.SHAde 的长度默认为256bit,也就是256个0和1的二进制
3,使用二进制串很不友好。所以将二进制转成了16进制,每4个bit表示一个16进制,所以128/4 = 32 换成16进制表示后,为32位了。同理,256/4 =64,64位
4.update 的意思是更新hash值,若同一个MD5对象两次调用update,第二次会保留第一次调用调用的信息,所以算一个字符串的hash值,应该重新生成md5对象
md5 加密:
sha 加密
五,对称加密
概念:对称加密是指数据加密与解密使用相同密钥
常用的对称加密: DES 3DES AES
特点: 加密与解密使用的密钥相同
但是由于算法一般都是公开的,因此机密性几乎完全依赖于密钥
通常使用的是相对较小的密钥,一般小于256bit。因为密钥越大,加密越强,但
加密与解密的过程越慢
说明:密钥长度越长,数据加密与解密的时间就越久
DES概念:数据加密算法是用一种对称加密算法。很可能是使用最广泛的密钥系统,
特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的
实现DES加密:
3DES概念:是三重数据加密算法(TDEA,TripleData Encryption Alogorithm)块密码的通称
它相当于对每个数据块应用三次DES加密算法
由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解,3DES即是设计用来
提供一种相对简单的方法, 即通过增加DES的密钥长度来避免攻击,3DES的演示过程:
AES概念:密码学中的高级加密标准,又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,演示如下:
六:非对称加密概念:
指的是加密和解密使用不用的密钥,一把做为公开的公钥,另一把座位私钥,这对密钥中的公钥进行加密,私钥勇于解密,反之亦然被私钥加密的数据也可以被公钥解密.演示:
看这里希望能给你在js加密上有所帮助。