iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 14
0
自我挑戰組

資訊技術解戈迪安繩結系列 第 13

IT|資訊安全|Java 中常用的加密方法

SHA


是一種數據加密演算法,該演算法經過加密專家多年來的發展和改進已日益完善,現在已成為公認的最安全的散列演算法之一,並被廣泛使用。
 
該演算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預映射或信息),並把它們轉化為長度較短、位數固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程。
散列函數值可以說時對明文的一種“指紋”或是“摘要”所以對散列值的數字簽名就可以視為對此明文的數字簽名。
 
SHA 與 MD5 比較


因為二者均由 MD4 導出,SHA-1 和 MD5 彼此很相似。相應的,他們的強度和其他特性也是相似,但還有以下幾點不同:
 
對強行攻擊的安全性:最顯著和最重要的區別是 SHA-1 摘要比MD5摘要長32位。使用強行技術,產生任何一個報文使其摘要等於給定報摘要的難度對 MD5 是2^128數量級的操作,而對 SHA-1 則是2^160數量級的操作。這樣,SHA-1 對強行攻擊有更大的強度。
 
對密碼分析的安全性:由於 MD5 的設計,易受密碼分析的攻擊,SHA-1 顯得不易受這樣的攻擊。
 
速度:在相同的硬件上,SHA-1 的運行速度比 MD5 慢。
 
BASE64


按照 RFC2045 的定義,Base64 被定義為:Base64 內容傳送編碼被設計用來把任意序列的8位字節描述為一種不易被人直接識別的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)
 
常見於郵件、http 加密,截取 http信息,你就會發現登錄操作的用戶名、密碼欄位通過 BASE64 加密的。
 
資源


內有完整 Sample Code
http://jax-work-archive.blogspot.tw/2015/02/java.html
 
Java如何進行Base64的編碼(Encode)與解碼(Decode)1
https://puremonkey2010.blogspot.tw/2016/03/java-javabase64encodedecode.html


上一篇
IT|作業系統|Linux|Ubuntu 安裝
下一篇
IT|資訊系統|專案管理|Redmine Project management system (PMS) 協同專案管理系統建置
系列文
資訊技術解戈迪安繩結29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言