摘要:時(shí)間年月日星期一說明本文部分內(nèi)容均來自慕課網(wǎng)。多用于網(wǎng)絡(luò)加密。散列函數(shù)函數(shù)或消息摘要函數(shù)主要作用散列函數(shù)用來驗(yàn)證數(shù)據(jù)的完整性。
時(shí)間:2017年4月10日星期一
說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com
教學(xué)示例源碼:https://github.com/zccodere/s...
個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s...
Java加、解密基礎(chǔ)與Base64算法
應(yīng)用示例:郵箱發(fā)送郵件
Base64嚴(yán)格意義上來說,并不算一個(gè)加解密的算法。通常也會(huì)把它作為加解密的方法來使用。
包含的內(nèi)容
安全和密碼 常用安全體系介紹 密碼分類及java的安全組成
JDK相關(guān)包及第三方擴(kuò)展
Base64算法介紹
如何學(xué)習(xí)
掌握用法 深入理解 不斷實(shí)踐 反復(fù)總結(jié)
再次深入理解與實(shí)踐
一些資源
http://www.google.com http://zh.wikipedia.org 其它…1-2 密碼的常用術(shù)語
密碼的常用術(shù)語(一)
明文:待價(jià)密的信息。 密文:經(jīng)過加密后的明文。 加密:明文轉(zhuǎn)為密文的過程。 加密算法:明文轉(zhuǎn)為密文的轉(zhuǎn)換算法。 加密密鑰:通過加密算法進(jìn)行加密操作用的密鑰。 解密:將密文轉(zhuǎn)為明文的過程。 解密算法:密文轉(zhuǎn)為明文的算法。 解密密鑰:通過解密算法進(jìn)行解密操作用的密鑰。
密碼常用術(shù)語(二)
密碼分析:截獲密文者試圖通過分析截獲的密文從而推斷出原來的明文或密鑰的過程。 主動(dòng)攻擊:攻擊者非法入侵密碼系統(tǒng),采用偽造、修改、刪除等手段向系統(tǒng)注入假消息進(jìn)程欺騙。(對(duì)密文具有破壞作用) 被動(dòng)攻擊:對(duì)一個(gè)保密系統(tǒng)采取截獲密文并對(duì)其進(jìn)行分析和攻擊。(對(duì)密文沒有破壞作用) 密碼體制:由明文空間、密文空間、密鑰空間、加密算法和解密算法五部分構(gòu)成。
密碼常用術(shù)語(三)
密碼協(xié)議:也稱為安全協(xié)議,指以密碼學(xué)為基礎(chǔ)的消息交換的通信協(xié)議,目的是在網(wǎng)絡(luò)環(huán)境中提供安全的服務(wù)。 密碼系統(tǒng):指用于加密、解密的系統(tǒng)。 柯克霍夫原則:數(shù)據(jù)的安全基于密鑰而不是算法的保密。即系統(tǒng)的安全取決于密鑰,對(duì)密鑰保密,對(duì)算法公開?,F(xiàn)代密碼學(xué)設(shè)計(jì)的基本原則。1-3 密碼分類
加解密基礎(chǔ)
密碼分類 Java安全組成 相關(guān)java包、類 第三方j(luò)ava擴(kuò)展
密碼分類,按時(shí)間分
古典密碼:以字符為基本加密單元。 現(xiàn)代密碼:以信息塊為基本加密單元。
密碼分類,按保密內(nèi)容算法
密碼分類,密碼體制
密碼分類,明文處理方法
分組密碼:將要加密的明文分成固定長(zhǎng)度的組,用同一密鑰和算法對(duì)每一塊加密,輸出也是固定長(zhǎng)度的密文。多用于網(wǎng)絡(luò)加密。 流密碼:也稱序列密碼。指加密時(shí)每次加密一位或者一個(gè)字節(jié)明文。
散列函數(shù)(hash函數(shù)或消息摘要函數(shù))
主要作用:散列函數(shù)用來驗(yàn)證數(shù)據(jù)的完整性。 特點(diǎn):長(zhǎng)度不受限制、哈希值容易計(jì)算、散列運(yùn)算過程不可逆
散列函數(shù)相關(guān)的算法
消息摘要算法MD5等 SNA:安全散列算法 MAC:消息認(rèn)證碼算法
數(shù)字簽名
主要是針對(duì)以數(shù)字的形式存儲(chǔ)的消息進(jìn)行的處理1-4 OSI與TCP/IP安全體系
OSI安全體系
TCP/IP安全體系
安全服務(wù)與安全機(jī)制
1-5 java安全組成、包及第三方擴(kuò)展Java安全組成
JCA(Java Cryptography Architecture) JCE(Java Cryptography Extension) JSSE(Java Secure Socket Extension) JAAS(Java Authentication and Authentication Service)
相關(guān)java包、類
java.security --消息摘要 javax.crypto --安全消息摘要,消息認(rèn)證(鑒別)碼 java.net.ssl --安全套接字
第三方j(luò)ava擴(kuò)展
Bouncy Castle --兩種支持方案:1)配置;2)調(diào)用 Comons Codes --Apache --Base64、二進(jìn)制、十六進(jìn)制、字符集編碼 --Url編碼/解碼第二章:Base64算法 2-1 實(shí)現(xiàn)Base64算法
應(yīng)用
Base64算法 消息摘要算法 對(duì)稱加密算法 非對(duì)稱加密算法 數(shù)字簽名算法 數(shù)字證書 安全協(xié)議
Base64算法
2-2 Base64算法應(yīng)用場(chǎng)景應(yīng)用場(chǎng)景:e-mail、密鑰、證書文件
Base64算法
產(chǎn)生:郵件的“歷史問題” 定義:基于64個(gè)字符的編碼算法 關(guān)于RFC 2045 衍生:Base16、Base32、Url Base64 Base64算法與加解密算法
64個(gè)字符
代碼實(shí)現(xiàn)
package com.myimooc.security.base64; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.IOException; /** * Base64加密演示 * Created by ZC on 2017/4/10. */ public class DemoBase64 { /** 待加密字符串 */ private static String src="imooc security base64"; public static void main(String[] args){ jdkBase64(); commonsCodesBase64(); bouncyCastleBase64(); } /** * 通過JDK實(shí)現(xiàn)Base64加密 */ public static void jdkBase64(){ try { BASE64Encoder encoder = new BASE64Encoder(); String encode = encoder.encode(src.getBytes()); System.out.println("encode:"+encode); BASE64Decoder decoder = new BASE64Decoder(); System.out.println("decode:"+new String(decoder.decodeBuffer(encode))); } catch (IOException e) { } } /** * 通過commons codec實(shí)現(xiàn)Base64加密 */ public static void commonsCodesBase64(){ byte[] encodeBytes = Base64.encodeBase64(src.getBytes()); System.out.println("encode:"+new String(encodeBytes)); byte[] decodeBytes = Base64.decodeBase64(encodeBytes); System.out.println("decode:"+new String(decodeBytes)); } /** * 通過Bouncy Castle實(shí)現(xiàn)Base64加密 */ public static void bouncyCastleBase64(){ byte[] encodeBytes = org.bouncycastle.util.encoders.Base64.encode(src.getBytes()); System.out.println("encode:"+new String(encodeBytes)); byte[] decodeBytes = org.bouncycastle.util.encoders.Base64.decode(encodeBytes); System.out.println("decode:"+new String(decodeBytes)); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/67036.html
摘要:時(shí)間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。秘密密鑰,生成一個(gè)分組的秘密密鑰。 時(shí)間:2017年4月12日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-1 概述 非對(duì)稱...
時(shí)間:2017年4月11日星期二說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:對(duì)稱加密算法DES 1-1 JAVA對(duì)稱加密算法DES 加密密鑰=解密密鑰 對(duì)稱加密算法 初等 DES --3D...
時(shí)間:2017年4月10日星期一說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-1 Java實(shí)現(xiàn)消息摘要算法加密 消息摘要算法 MD(Message Digest) SHA(Secure H...
時(shí)間:2017年4月13日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個(gè)人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-1 數(shù)字簽名算法概述 數(shù)字簽名算法 簽名-安全性,抗否認(rèn)性 數(shù)字簽名:帶有密鑰(公鑰、私鑰)的消息摘要算法 驗(yàn)...
摘要:時(shí)間年月日星期四說明本文部分內(nèi)容均來自慕課網(wǎng)。倉(cāng)庫(kù)構(gòu)建鏡像的目的是為了在其機(jī)器上運(yùn)行鏡像程序。使用參數(shù),冒號(hào)前面為主機(jī)端口,后面為容器端口。 時(shí)間:2017年04月27日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:無個(gè)人學(xué)習(xí)源碼:無 第一章:課程介紹 1-1 課程介紹 Docker能火的原因 快速的持續(xù)集成 服務(wù)的彈性伸縮 部署...
閱讀 2397·2021-10-09 09:41
閱讀 3199·2021-09-26 09:46
閱讀 845·2021-09-03 10:34
閱讀 3185·2021-08-11 11:22
閱讀 3379·2019-08-30 14:12
閱讀 721·2019-08-26 11:34
閱讀 3353·2019-08-26 11:00
閱讀 1784·2019-08-26 10:26