安全機制瞭解

(一)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地址

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