安全机制了解

(一)base64

(1)简介

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。
输出包括A-Z、a-z、数字0-9这62个码字及两个+/两个特殊码字

(2)实现原理

base64的编码都是按字符串长度,以每3个8bit的字符为一组,
-然后针对每组,首先获取每个字符的ASCII编码,
-然后将ASCII编码转换成8bit的二进制,得到一组3*8=24bit的字节
-然后再将这24bit划分为4个6bit的字节,并在每个6bit的字节前面都填两个高位0,得到4个8bit的字节
-然后将这4个8bit的字节转换成10进制,对照Base64编码表 (下表),得到对应编码后的字符。
举例如下:
字符串: s 1 3
先转成ascii:115 49 51
2进制: 01110011 00110001 00110011
6个一组(4组)011100 110011 000100 110011
然后计算机是8位8位的存数 6不够,自动就补两个高位0
00011100 00110011 00000100 00110011
得到 28 51 4 51
查对下照表 c z E z

(3)应用场景

1、mail

邮件传输协议不能包含非ascii码及二进制数据,需要base64做转换

2、url

url只能包含ascii码,有时候可能会带二进制数据,比如直接传输图片数据流的时候,这时候就需要做base64处理,但是原始处理方式还会包含+/符号,所以还需要做url encoding 转换成%XX 模式

3、html内嵌图片

有时候html中图片不是以链接形式嵌入,而是直接文件流形式,会通过base64转换成字符串

(二)加密介绍

数据加密的基本过程就是对原来为明文的文件或数据按某种
算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的
密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

加密方式:对称加密和非对称加密
对称加密指加密和解密密钥相同,加解密速度快效率高,如DES。
非对称加密需要两个密钥:公开密钥(publickey)和私有密钥(privatekey),安全性强,如 RSA。

(三)MD5

(1)简介

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),是摘要算法而非加密算法因不可逆,主流编程语言普遍已有MD5实现。
具有压缩性(长度固定)、容易计算、抗修改性(修改一个字节 MD5值改变很大)、抗碰撞性强等特点。
标准的md5函数生成128位的字符串,由于太长存储不方便,不同平台用不同方法截取,一般是16位或32位,java中自带的MessageDigest生成32位字符串。

(2)应用场景

1、一致性验证

对信息产生信息摘要,防止被篡改,也包括对文件篡改的判别。

2、数字签名

因为任何人都可以生成自己的(公钥,私钥)对,所以为了防止有人散布伪造的公钥骗取信任,就需要一个可靠的第三方机构来生成经过认证的(公钥,私钥)对,就是数字证书。

3、安全访问认证

MD5还广泛用于操作系统的登陆认证上,如登录的密码用md5转换后再传递,数据库中保存md5值。

附上 github地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章