1. 程式人生 > >前端js數據加密解密

前端js數據加密解密

base64 bsp 進行 signature .cn 進制 original 利用 www

一、最簡單的加密解密

  函數escape()和unescape();

二、base64加密

(1)introduction

    base64是網絡上最常見的用於傳輸8bit字節碼的編碼方式之一,base64就是一種基於64個可打印字符來表示二進制數據的方法。

    https://en.wikipedia.org/wiki/Base64

(2)常用js base64加密庫

   https://github.com/dankogai/js-base64

(3) 原生js已經支持base64加密及解密

加密 window.btoa(decodeData) 解密window.atob(encodeData)

  技術分享圖片

  對於中文進行解密及加密需要先對中文進行轉碼

  技術分享圖片

  encodeURIComponent API相關可參考http://www.w3school.com.cn/jsref/jsref_encodeURIComponent.asp

三、md5加密

(1)introduction

MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致

具體來說文件的MD5值就像是這個文件的“數字指紋”。每個文件的MD5值是不同的,如果任何人對文件做了任何改動,其MD5值也就是對應的“數字指紋”就會發生變化。比如下載服務器針對一個文件預先提供一個MD5值,用戶下載完該文件後,用我這個算法重新計算下載文件的MD5值,通過比較這兩個值是否相同,就能判斷下載的文件是否出錯,或者說下載的文件是否被篡改了。

利用MD5算法來進行文件校驗的方案被大量應用到軟件下載站、論壇數據庫、系統文件安全等方面。

(2)常用js md5庫

  https://github.com/blueimp/JavaScript-MD5

四、sha1加密

(1)introduction

安全哈希算法(Secure Hash Algorithm)主要適用於數字簽名標準 (Digital Signature Standard DSS)裏面定義的數字簽名算法(Digital Signature Algorithm DSA)。對於長度小於2^64位的消息,SHA1會產生一個160位的消息摘要。當接收到消息的時候,這個消息摘要可以用來驗證數據的完整性。在傳輸的過程中,數據很可能會發生變化,那麽這時候就會產生不同的消息摘要。

(2)常用js sha1庫

  https://github.com/emn178/js-sha1

前端js數據加密解密