1. 程式人生 > >幾種加密算法

幾種加密算法

系統 由於 重裝 比較 兩個 方式 密碼 依賴 class

1 Base64加密方式(可逆)

Base64中的可打印字符包括字母A-Z/a-z/數組0-9/ 加號’+’斜杠’/’ 這樣共有62個字符

Base64 ios7之後加入系統庫

2 MD5加密

Message Digest Algorithm MD5(中文名為消息摘要算法第五版)為計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護

是計算機廣泛使用的雜湊算法之一(又譯摘要算法、哈希算法),主流編程語言普遍已有MD5實現。

根據輸出值,不能得到原始的明文,即其過程不可逆

MD5算法具有以下特點:

1、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。

2、容易計算:從原數據計算出MD5值很容易。

3、抗修改性:對原數據進行任何改動,哪怕只修改1個字節,所得到的MD5值都有很大區別。

4、強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。

MD5的作用是讓大容量信息在用數字簽名軟件簽署私人密鑰前被”壓縮"成一種保密的格式(就是把一個任意長度的字節串變換成一定長的十六進制數字串)。除了MD5以外,其中比較有名的還有sha-1、RIPEMD以及Haval等。

MD5加鹽

3 鑰匙串加密方式

iCloud鑰匙串,蘋果給我們提供的密碼保存的解決方案,iOS7之後有的

存沙盒:

1、如果手機越獄,密碼容易被竊取。

2、當軟件更新時,沙盒裏的內容是不被刪除的。但是,如果將軟件卸載後重裝,沙盒裏的數據就沒有了。

3、每個APP的沙盒是相對獨立的,密碼無法共用。

存鑰匙串裏:

1、蘋果提供的安全方案,rsa加密,相對安全。

2、無論軟件更新或刪除,密碼都存在,都可以自動登錄。

3、同一公司的APP密碼是可以共用的。

4 對稱加密算法

優點:算法公開、計算量小、加密速度快、加密效率高、可逆

缺點:雙方使用相同鑰匙,安全性得不到保證

現狀:對稱加密的速度比公鑰加密快很多,在很多場合都需要對稱加密,

算法: 在對稱加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等。不同算法的實現機制不同,可參考對應算法的詳細資料

相較於DES和3DES算法而言,AES算法有著更高的速度和資源使用效率,安全級別也較之更高了,被稱為下一代加密標準

nECB :電子代碼本,就是說每個塊都是獨立加密的

nCBC :密碼塊鏈,使用一個密鑰和一個初始化向量 (IV)對數據執行加密轉換

ECB和CBC區別:CBC更加復雜更加安全,裏面加入了8位的向量(8個0的話結果等於ECB)。在明文裏面改一個字母,ECB密文對應的那一行會改變,CBC密文從那一行往後都會改變。

5 RSA加密(非對稱加密算法)(Secruty.framework系統庫)

非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)

非對稱加密中使用的主要算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(橢圓曲線加密算法)等。

公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麽只有用對應的公開密鑰才能解密

特點:

非對稱密碼體制的特點:算法強度復雜、安全性依賴於算法與密鑰但是由於其算法復雜,而使得加密解密速度沒有對稱加密解密的速度快

對稱密碼體制中只有一種密鑰,並且是非公開的,如果要解密就得讓對方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了

但是RSA加密算法效率較差,對大型數據加密時間很長,一般用於小數據。

幾種加密算法