各種加密實現
http://www.blogjava.net/stone2083/archive/2012/09/02/168113.html
java->類加載器->文件校驗器->安全管理器
簡述:
校驗器的作用:校驗類文件是否完整
安全管理器: 負責控制某個操作是否被允許
用戶認證
數字簽名
加密
數字簽名更多是用來校驗信息有沒有被修改過,而加密可以徹底杜絕防止別人看到信息內容
1. 語言層次安全性
最初的Java(JDK1.2)平台采用沙箱安全模型,基本安全模型由三部分來承擔,這三部分構成Java運行環境的三個安全組件,分別是:類加載器,文件校驗器,安全管理器。
1.1 類加載器是Java安全機制的重要組成部分,可以將類加載器主要分為四類,即,啟動類加載器、標准擴展類加載器、路徑加載器和網絡類加載器。
1.1.1采用“雙親委派鏈模式”
1.1.2類加載器為加載的類提供了不同的命名空間
1.1.3類加載器提供了類型檢查的功能模塊。類加載器在程序的執行周期中還進
行語義、類型匹配、類型轉換和拋出異常等相關檢查,保證了程序的健壯性。
1.2 類文件校驗器的校驗類文件校驗器負責檢查那些無法執行的明顯有破壞性的
操作
1.3 安全管理器是一個負責控制某個操作是否允許執行的類,
2企業層次的安全特性
SHA-1 和 MD5算法
嚴格說來它們不算是加密算法,只能說是摘要算法。
SHA-1算法:Security Hash Algorithm 安全哈希算法, 它可以把長度不超過2的64次方位的信息轉換成160位(20字節)長的散列值
MD5算法:Message Digest 信息摘要算法, 散列長度是128位,16個字節。它對輸入以512位分組,輸出是4個32位字的級聯。
CRC算法:循環冗余校驗,碰撞幾率比較高
| 比較類型 | SHA-1 | MD5 |
|----------------+----------+---------|
| 分組長度 | 512比特 | 512比特 |
| 摘要長度 | 160比特 | 128比特 |
| 循環中的步驟 | 80 | 60 |
| 報文的最大長度 | 2^64 - 1 | 無窮大 |
| 基本邏輯函數 | 4 | 4 |
| 結構形式 | 大端 | 小端 |
由於MD5 與SHA-1均是從MD4 發展而來,它們的結構和強度等特性有很多相似之處,表(1)是對MD5與SHA-1 的結構比較。SHA-1與MD5 的最大區別在於其摘要比MD5 摘要長 32 比特。對於強行攻擊,產生任何一個報文使之摘要等於給定報文摘要的難度:MD5 是2^128 數量級的操作,SHA-1 是2^160 數量級的操作。產生具有相同摘要的兩個報文的難度:MD5是 2^64 是數量級的操作,SHA-1 是2^80 數量級的操作。因而,SHA-1 對強行攻擊的強度更大。但由於SHA-1 的循環步驟比MD5 多(80:64)且要處理的緩存大(160 比特:128 比特),SHA-1 的運行速度比MD5 慢。
MD5 和SHA-1 是單項散列函數的典型代表
DSA(Data signature Algorithm數字簽名)
生成一對公鑰和私鑰,把公鑰發送給需要獲取消息的人。將所要發送的消息用自己的私鑰加密,然后發送給接收者,接受者得到文件之后用公鑰驗證.主要作用是驗證發送者的身份和信息的完整性。它是數字簽名算法,一種標准的 DSS(數字簽名標准),嚴格來說不算加密算法
RSA公鑰密碼體制
RSA公鑰加密算法
RSA算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。
RSA是第一個既能用於數據加密也能用於數字簽名的算法。RSA的安全性依賴於大數分解,但是否等同於大數分解不得而知。
由於進行的都是大數計算,使得RSA最快的情況也比DES慢上倍,無論是軟件還是硬件實現。速度一直是RSA的缺陷。一般來說只用於少量數據加密。是一個支持變長密鑰的公共密鑰算法,需要加密的文件塊的長度也是可變的,非對稱算法
DES和AES 單密鑰算法 對稱加密算法
DES:data encryption standard
DES的算法是對稱的,既可用於加密又可用於解密,是一個密碼長度為56位的古老
的分組密碼,DES算法現在已經過時了,因為可以用窮舉法破解。