几种常用的加密方式简单介绍
1 Base64加密方式(可逆)
Base64中的可打印字符包括字母A-Z/a-z/數組0-9/ 加號’+’斜杠’/’?這樣共有62個字符
Base64 ios7之后加入系統庫
android? 中 的幾種模式 ,在需要與服務端或者交互式要溝通好需要處理的字符。
?? ??? ?CRLF?這個參數看起來比較眼熟,它就是Win風格的換行符,意思就是使用CR LF這一對作為一行的結尾而不是Unix風格的LF
?? ???? ?DEFAULT?這個參數是默認,使用默認的方法來加密
?? ???? ?NO_PADDING?這個參數是略去加密字符串最后的”=”
?? ???? ?NO_WRAP?這個參數意思是略去所有的換行符(設置后CRLF就沒用了)
?? ???? ?URL_SAFE?這個參數意思是加密時不使用對URL和文件名有特殊意義的字符來作為加密字符,具體就是以-和_取代+和/
因為各個系統間會有特殊字符處理不同的情況。有個簡單的方式直接用?NO_WRAP 模式加密后,進行utf-8處理。如下:
public static String getBase64(String str) { String result = ""; if( str != null) {try { result = new String(Base64.encode(str.getBytes("utf-8"), Base64.NO_WRAP),"utf-8");} catch (UnsupportedEncodingException e) { e.printStackTrace(); } }return result; } // 解密 public static String getFromBase64(String str) { String result = ""; if (str != null) { try {result = new String(Base64.decode(str, Base64.NO_WRAP), "utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();} } return result; } ??
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加密算法效率較差,對大型數據加密時間很長,一般用于小數據。
總結
以上是生活随笔為你收集整理的几种常用的加密方式简单介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ECB模式详解
- 下一篇: anroid 图片处理加载对比(ima