国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

慕課網_《Java實現Base64加密》學習總結

verano / 1516人閱讀

摘要:時間年月日星期一說明本文部分內容均來自慕課網。多用于網絡加密。散列函數函數或消息摘要函數主要作用散列函數用來驗證數據的完整性。

時間:2017年4月10日星期一
說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com
教學示例源碼:https://github.com/zccodere/s...
個人學習源碼:https://github.com/zccodere/s...

第一章:概述 1-1 Java實現Base64加密概述

Java加、解密基礎與Base64算法

應用示例:郵箱發送郵件

Base64嚴格意義上來說,并不算一個加解密的算法。通常也會把它作為加解密的方法來使用。

包含的內容

安全和密碼
常用安全體系介紹
密碼分類及java的安全組成

JDK相關包及第三方擴展

Base64算法介紹

如何學習

掌握用法
深入理解
不斷實踐
反復總結

再次深入理解與實踐
一些資源

http://www.google.com
http://zh.wikipedia.org
其它…
1-2 密碼的常用術語

密碼的常用術語(一)

明文:待價密的信息。
密文:經過加密后的明文。
加密:明文轉為密文的過程。
加密算法:明文轉為密文的轉換算法。
加密密鑰:通過加密算法進行加密操作用的密鑰。
解密:將密文轉為明文的過程。
解密算法:密文轉為明文的算法。
解密密鑰:通過解密算法進行解密操作用的密鑰。

密碼常用術語(二)

密碼分析:截獲密文者試圖通過分析截獲的密文從而推斷出原來的明文或密鑰的過程。
主動攻擊:攻擊者非法入侵密碼系統,采用偽造、修改、刪除等手段向系統注入假消息進程欺騙。(對密文具有破壞作用)
被動攻擊:對一個保密系統采取截獲密文并對其進行分析和攻擊。(對密文沒有破壞作用)
密碼體制:由明文空間、密文空間、密鑰空間、加密算法和解密算法五部分構成。

密碼常用術語(三)

密碼協議:也稱為安全協議,指以密碼學為基礎的消息交換的通信協議,目的是在網絡環境中提供安全的服務。
密碼系統:指用于加密、解密的系統。
柯克霍夫原則:數據的安全基于密鑰而不是算法的保密。即系統的安全取決于密鑰,對密鑰保密,對算法公開。現代密碼學設計的基本原則。

1-3 密碼分類

加解密基礎

密碼分類
Java安全組成
相關java包、類
第三方java擴展

密碼分類,按時間分

古典密碼:以字符為基本加密單元。
現代密碼:以信息塊為基本加密單元。

密碼分類,按保密內容算法

密碼分類,密碼體制

密碼分類,明文處理方法

分組密碼:將要加密的明文分成固定長度的組,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文。多用于網絡加密。
流密碼:也稱序列密碼。指加密時每次加密一位或者一個字節明文。

散列函數(hash函數或消息摘要函數)

主要作用:散列函數用來驗證數據的完整性。
特點:長度不受限制、哈希值容易計算、散列運算過程不可逆

散列函數相關的算法

消息摘要算法MD5等
SNA:安全散列算法
MAC:消息認證碼算法

數字簽名

主要是針對以數字的形式存儲的消息進行的處理
1-4 OSI與TCP/IP安全體系

OSI安全體系

TCP/IP安全體系

安全服務與安全機制

1-5 java安全組成、包及第三方擴展

Java安全組成

JCA(Java Cryptography Architecture)
JCE(Java Cryptography Extension)
JSSE(Java Secure Socket Extension)
JAAS(Java Authentication and Authentication Service)

相關java包、類

java.security
    --消息摘要
javax.crypto
    --安全消息摘要,消息認證(鑒別)碼
java.net.ssl
    --安全套接字

第三方java擴展

Bouncy Castle
    --兩種支持方案:1)配置;2)調用
Comons Codes
    --Apache
    --Base64、二進制、十六進制、字符集編碼
    --Url編碼/解碼
第二章:Base64算法 2-1 實現Base64算法

應用

Base64算法
消息摘要算法
對稱加密算法
非對稱加密算法
數字簽名算法
數字證書
安全協議

Base64算法

2-2 Base64算法應用場景

應用場景:e-mail、密鑰、證書文件

Base64算法

產生:郵件的“歷史問題”
定義:基于64個字符的編碼算法
關于RFC 2045
衍生:Base16、Base32、Url Base64
Base64算法與加解密算法

64個字符

代碼實現

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實現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實現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實現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));
    }

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67036.html

相關文章

  • 課網_Java實現非對稱加密學習總結

    摘要:時間年月日星期三說明本文部分內容均來自慕課網。秘密密鑰,生成一個分組的秘密密鑰。 時間:2017年4月12日星期三說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:https://github.com/zccodere/s... 第一章:概述 1-1 概述 非對稱...

    dailybird 評論0 收藏0
  • 課網_Java實現對稱加密學習總結

    時間:2017年4月11日星期二說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:https://github.com/zccodere/s... 第一章:對稱加密算法DES 1-1 JAVA對稱加密算法DES 加密密鑰=解密密鑰 對稱加密算法 初等 DES --3D...

    tomlingtm 評論0 收藏0
  • 課網_Java實現消息摘要算法加密學習總結

    時間:2017年4月10日星期一說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:https://github.com/zccodere/s... 第一章:概述 1-1 Java實現消息摘要算法加密 消息摘要算法 MD(Message Digest) SHA(Secure H...

    zengdongbao 評論0 收藏0
  • 課網_Java實現數字簽名》學習總結

    時間:2017年4月13日星期四說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:https://github.com/zccodere/s... 第一章:概述 1-1 數字簽名算法概述 數字簽名算法 簽名-安全性,抗否認性 數字簽名:帶有密鑰(公鑰、私鑰)的消息摘要算法 驗...

    gotham 評論0 收藏0
  • 課網_《第一個docker化的java應用》學習總結

    摘要:時間年月日星期四說明本文部分內容均來自慕課網。倉庫構建鏡像的目的是為了在其機器上運行鏡像程序。使用參數,冒號前面為主機端口,后面為容器端口。 時間:2017年04月27日星期四說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:無 第一章:課程介紹 1-1 課程介紹 Docker能火的原因 快速的持續集成 服務的彈性伸縮 部署...

    李濤 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<