java和go中的密碼學-系列教程目錄
加解密技術在我們平日工作生活中應用隨處可見、不可或缺。當前如火如荼的區塊鏈技術的確權無信任實現的底層根基就是加解密技術。
因此,掌握常見加解密技術是非常重要的,也是程式員進入區塊鏈行業的必備知識能力。
本系列是本人學習加解密知識過程中的總結整理,希望能幫到大家。本系列將會主要以Golang和java的程式碼案例對比、互通學習的形式講解常見加解密知識,希望讀者閱讀後能快速掌握golang和java中加解密技術。
宣告:本系列是一年前學習筆記後的總結,當日學習過程中部分筆記片段直接摘錄自網路或者來源於書籍,如今無法找到源地址。故侵刪!
推薦閱讀
推薦書籍《 Java加密與解密的藝術》作者樑棟,強烈推薦。此書已經幫我們梳理好知識脈絡,可使我們學習少些懵逼困惑!
一.不可不知的密碼學歷史
1.密碼學需要基於數學的啟發、柯克霍夫原則
二.不可不知的行業標準
1.ASN.1的介紹
(1)DER,PEM編碼規則
2.PKI體系介紹
3.X.509介紹
(1)數字證書規範定義
4.PKCS系列標準
(1)公私鑰規範定義
5..cert,.cer,.crt,.key常見檔案格式字尾的理解
三.Java安全須知
1.JCA和JCE必知的歷史細節!!
2.Java的SPI機制瞭解
3.加密服務提供者-Provider介面及BC中的各功能包介紹(BCJar包時有多個型別的,下載請注意!)
4.引擎類介紹
四.雜湊演算法 梳理和案例
1.訊息摘要與訊息認證碼MAC
2.MD2,MD5,SHA1,SHA256,SHA383,SHA512介紹
(1)常用實現演算法
3.區域性敏感雜湊演算法-LSH
五.對稱加密演算法 梳理和案例
1.DES,3DES,AES,原理介紹及程式碼案例
(1)隨機數種子、隨機數在金鑰生成的作用
(2)EBC,CBC分組加密模式;預設地,分組大小由金鑰bit數量指定。
(3)padding填充模式:NoPadding和分組大小的非整數倍 的報錯重現
2.Blowfish,RC2,RC4簡單介紹
3.PBE演算法簡單介紹
六.非對稱加密 梳理和案例
1.RSA及java和Golang程式碼案例
(1)RSA明文長度、金鑰長度等不可不知的知識
(2)分組加密模式和填充模式
2.ECC及java和Golang程式碼案例
(1)曲線選擇與golang和java中的對比
3.DH-金鑰交換演算法
七.數字簽名和數字證書 梳理和案例
1.DSA
2.RSADSA及java和Golang程式碼案例
3.ECDSA及java和Golang程式碼案例
八.應用場景
1.HTTPS 和DH,非對稱加密,對稱加密
2.SSL和TLS
3.單向認證 和 雙向認證
4.金鑰和證書管理-Java中的Keytool
5.金鑰和證書管理-OPENSSL快速入門-略
6.CSR製作、簽名、生成數字證書的實踐
(1)工具網站、keytool、openssl生成CSR檔案 和 解析檔案
(2)Csr簽名和生成證書