技術18期:數據安全之加密與實現

前言:大數據時代,每個人的生活中都不存在所謂的絕對「祕密」,通過網絡上的數據信息可以分析出一個人生活的各種痕跡。因此,保障大數據信息安全至關重要。

 

本文主要介紹了散列算法、對稱加密算法非對稱加密算法的概念和代碼實現。

 

數據安全的重要性

 

1. 數據保密性

數據只能由授權實體存取、識別,放置非授權泄露,即數據不能被未授權的第三方使用 。

2. 數據完整性

防止非授權實體對數據進行非法篡改,即數據在傳輸過長中不能被未授權方修改。

3. 數據可用性

數據對於授權實體是可用的,有效的。

 

什麼是數據加密?

 

數據加密的核心是密碼學,指通過加密算法和加***將明文的文件或者數據轉變爲密文,而解密則是通過解密算法和解***將密文恢復爲明文。


通過對數據的加密、解密有效地提高企業應用的安全性,數據加密可以在企業應用中的多個環節實現。比如:可對機要數據進行加密後再存儲,對用戶的口令加密後存儲的等。

 

加密算法介紹

 

加密算法一般劃分爲:對稱加密非對稱加密算法;除此之外還有一種是散列(Hash)算法。嚴格上講:HASH 算法是一種消息摘要算法,不是一種加密算法,但由於其單向運算,具有一定的不可逆性,成爲加密算法中的一個構成部分,完整的加密機制不能僅依賴 HASH 算法。

 

三種類別的加密算法詳見下表:

 

 

應用建議:在實際的操作過程中,我們通常採用的方式是採用非對稱加密算法管理對稱算法的**,然後用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理**的優點。

 

常見算法速度、安全性等詳見下表:

 

 

加密算法消息通信過程

 

1、Hash算法

 

 

2、對稱加密算法

 

 

3、非對稱加密算法

 

 

加密實現

 

一、Hash算法

 

1、java自帶的MessageDigest實現加密,實現步驟如下:

1) 獲取指定摘要算法,參數可以輸入MD5、SHA等

MessageDigest md=MessageDigest.getInstance("MD5");

2) 計算md5函數

md.update(byte str);或md.update(byte[] str);

3) 獲取消息摘要結果

md.digest()

 代碼示例如下:

 

 

2、java自帶的Mac實現加密,實現步驟如下:

1) 產生**

algorithm算法,比如:HmacMD5、HmacSHA1

SecretKey secretKey =KeyGenerator.getInstance(algorithm).generateKey();

2) 實列MAC

Mac mac = Mac.getInstance(secretKey.getAlgorithm());

3) 執行摘要

mac.doFinal(pwd.getBytes());

代碼示例如下:

 

 

二、對稱加密算法

 

1、消息傳遞模型

消息傳遞模型步驟如下:

 

 

2、java自帶的Cipher實現

實現步驟如下:

(1) **構建,代碼示例如下:

 

(2)生成**,代碼示例如下:

 

 

(3) 加密實現,實現步驟如下:

1) 實例化Cipher

2) 初始化

3) 設置加密模式

4) 執行操作

代碼示例如下:

 

 

(4)解密實現,實現步驟如下:

1) 實例化Cipher

2) 初始化

3) 設置解密模式

4) 執行操作

代碼示例如下:

 

 

三、非對稱加密算法

 

1、消息傳遞模型步驟如下:

 

 

 

 

2、java自帶的Cipher實現

實現步驟如下:

(1) 公鑰、私鑰,**對構建,代碼示例如下:

 

 

(2)私鑰加密,加密步驟如下:

1) 獲取私鑰

2) 生成私鑰

3) 實例化Cipher

4) 初始化

5) 設置加密模式

6) 執行操作

代碼示例如下:

 

(3)私鑰解密解密步驟如下:

1) 獲取私鑰

2) 生成私鑰

3) 實例化Cipher

4) 初始化

5) 設置解密模式

6) 執行操作

代碼示例如下:

 

(4)公鑰加密,加密步驟如下:

1) 獲取公鑰

2) 生成公鑰

3) 實例化Cipher

4) 初始化

5) 設置加密模式

6) 執行操作

代碼示例如下:

 

 

(5)公鑰解密,解密步驟如下:

1) 獲取公鑰

2) 生成公鑰

3) 實例化Cipher

4) 初始化

5) 設置解密模式

6) 執行操作

代碼示例如下:

 

 

總結:加密重要嗎?當然,它們是一個額外的保護層。

- THE END -

 

文章內容僅代表作者個人觀點

作者:陳鴻姣

編輯:詹思璇

 

想了解更多關於人工智能的資訊

別忘了關注普適極客