DES是一種對稱加密算法,也就是通過密文和合法的密鑰能夠將明文還原出來,在程序開發過程中有些接口可能需要獲取原始數據,而發送的數據又比較敏感(比如用戶的密碼等信息),這時可以選擇DES加密算法,DES的安全性還算可靠,只要加密密鑰不泄露,目前破解的方法只有窮舉法進行破解。
再說一下應用時需要注意的地方,
1.DES加密時需要的key(密鑰)長度不能超過8位,一般我們設置8位就可以了。
2.DES加密后的數據是二進制數據,如果使用GET方式傳輸應該將其處理一下才可以(比如可以轉換成16進制、base64等)。
3.需要加密的數據如果長度不是8字節的倍數,在解密后末尾會有多余的不可預知的東西(不足8字節的部分會自動補齊到8字節),需要進行處理才能得到嚴格意義上的原始數據,或者我們在加密原始數據前就將數據補齊到8字節的倍數(比如接口約定原始數據不足8字節的部分用空格填充等)。
接下來是一個簡單的流程圖來說明DES加密解密過程:
另外在php中使用DES進行加密解密時,如果已經安裝了mcrypt擴展,將非常簡單,如果沒有開啟也有辦法,下面是DES進行加密解密的程序demo,支持開啟或沒有開啟mcrypt擴展的情況,使用方式看注釋說明。需要的可以下載。
新聞熱點
疑難解答
圖片精選