前言:大數據時代,每個人的生活中都不存在所謂的絕對「祕密」,通過網絡上的數據信息可以分析出一個人生活的各種痕跡。因此,保障大數據信息安全至關重要。
本文主要介紹了散列算法、對稱加密算法和非對稱加密算法的概念和代碼實現。
數據安全的重要性
1. 數據保密性
數據只能由授權實體存取、識別,放置非授權泄露,即數據不能被未授權的第三方使用 。
2. 數據完整性
防止非授權實體對數據進行非法篡改,即數據在傳輸過長中不能被未授權方修改。
3. 數據可用性
數據對於授權實體是可用的,有效的。
什麼是數據加密?
數據加密的核心是密碼學,指通過加密算法和加***將明文的文件或者數據轉變爲密文,而解密則是通過解密算法和解***將密文恢復爲明文。
通過對數據的加密、解密有效地提高企業應用的安全性,數據加密可以在企業應用中的多個環節實現。比如:可對機要數據進行加密後再存儲,對用戶的口令加密後存儲的等。
加密算法介紹
加密算法一般劃分爲:對稱加密和非對稱加密算法;除此之外還有一種是散列(Hash)算法。嚴格上講:HASH 算法是一種消息摘要算法,不是一種加密算法,但由於其單向運算,具有一定的不可逆性,成爲加密算法中的一個構成部分,完整的加密機制不能僅依賴 HASH 算法。
三種類別的加密算法詳見下表:
應用建議:在實際的操作過程中,我們通常採用的方式是採用非對稱加密算法管理對稱算法的**,然後用對稱加密算法加密數據,這樣我們就集成了兩類加密算法的優點,既實現了加密速度快的優點,又實現了安全方便管理**的優點。
加密算法消息通信過程
1、Hash算法
2、對稱加密算法
3、非對稱加密算法
加密實現
1) 獲取指定摘要算法,參數可以輸入MD5、SHA等
MessageDigest md=MessageDigest.getInstance("MD5");
2) 計算md5函數
md.update(byte str);或md.update(byte[] str);
3) 獲取消息摘要結果
md.digest()
代碼示例如下:
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)生成**,代碼示例如下:
(3) 加密實現,實現步驟如下:
1) 實例化Cipher
2) 初始化
3) 設置加密模式
4) 執行操作
代碼示例如下:
(4)解密實現,實現步驟如下:
1) 實例化Cipher
2) 初始化
3) 設置解密模式
4) 執行操作
代碼示例如下:
實現步驟如下:
(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 -
文章內容僅代表作者個人觀點
作者:陳鴻姣
編輯:詹思璇
想了解更多關於人工智能的資訊
別忘了關注普適極客