整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          各種各樣加密算法的js庫,安全加密不再愁-crypto-js

          crypto-js是一個前端Javascript標準加密算法庫,CryptoJS (crypto.js) 為 JavaScript 提供了各種各樣的加密算法。有時候項目涉及到的敏感數(shù)據(jù)比較多,為了信息安全,我們常常需要對一些數(shù)據(jù)進行接口加密處理,如編碼、將明文轉(zhuǎn)化為暗文、加密比對,目前已支持的算法包括:MD5、 SHA-1、SHA-256、AES、Rabbit、MARC4、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、PBKDF2等






          Github

          https://github.com/brix/crypto-js


          安裝

          使用npm進行安裝

          npm install crypto-js

          使用

          支持nodejs和瀏覽器

          • ES6
          import sha256 from 'crypto-js/sha256';
          import hmacSHA512 from 'crypto-js/hmac-sha512';
          import Base64 from 'crypto-js/enc-base64';
          
          const message, nonce, path, privateKey; // ...
          const hashDigest = sha256(nonce + message);
          const hmacDigest = Base64.stringify(hmacSHA512(path + hashDigest, privateKey));
          • 模塊化
          var AES = require("crypto-js/aes");
          var SHA256 = require("crypto-js/sha256");
          ...
          console.log(SHA256("Message"));
          • 直接引用
          <script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script>
          <script type="text/javascript">
              var encrypted = CryptoJS.AES(...);
              var encrypted = CryptoJS.SHA256(...);
          </script>

          AES加密

          • 明文加密
          var CryptoJS = require("crypto-js");
          
          // Encrypt
          var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();
          
          // Decrypt
          var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
          var originalText = bytes.toString(CryptoJS.enc.Utf8);
          
          console.log(originalText); // 'my message'
          • 對象加密
          var CryptoJS = require("crypto-js");
          
          var data = [{id: 1}, {id: 2}]
          
          // 加密
          var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();
          
          // 解密
          var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
          var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
          
          console.log(decryptedData); // [{id: 1}, {id: 2}]

          模塊集合


          • crypto-js/core
          • crypto-js/x64-core
          • crypto-js/lib-typedarrays

          • crypto-js/md5
          • crypto-js/sha1
          • crypto-js/sha256
          • crypto-js/sha224
          • crypto-js/sha512
          • crypto-js/sha384
          • crypto-js/sha3
          • crypto-js/ripemd160

          • crypto-js/hmac-md5
          • crypto-js/hmac-sha1
          • crypto-js/hmac-sha256
          • crypto-js/hmac-sha224
          • crypto-js/hmac-sha512
          • crypto-js/hmac-sha384
          • crypto-js/hmac-sha3
          • crypto-js/hmac-ripemd160

          • crypto-js/pbkdf2

          • crypto-js/aes
          • crypto-js/tripledes
          • crypto-js/rc4
          • crypto-js/rabbit
          • crypto-js/rabbit-legacy
          • crypto-js/evpkdf

          • crypto-js/format-openssl
          • crypto-js/format-hex

          • crypto-js/enc-latin1
          • crypto-js/enc-utf8
          • crypto-js/enc-hex
          • crypto-js/enc-utf16
          • crypto-js/enc-base64

          • crypto-js/mode-cfb
          • crypto-js/mode-ctr
          • crypto-js/mode-ctr-gladman
          • crypto-js/mode-ofb
          • crypto-js/mode-ecb

          • crypto-js/pad-pkcs7
          • crypto-js/pad-ansix923
          • crypto-js/pad-iso10126
          • crypto-js/pad-iso97971
          • crypto-js/pad-zeropadding
          • crypto-js/pad-nopadding



          總結(jié)

          有這樣一個齊全的加密算法庫,就很方便很多了,小伙伴們火速收藏吧!

          端常用的數(shù)據(jù)加密方式主要包括以下幾種:

          1. Base64編碼:雖然Base64編碼不被認為是一種真正的加密方式,但它可以將二進制數(shù)據(jù)轉(zhuǎn)換為ASCII字符串,使得數(shù)據(jù)可以在文本格式中安全地傳輸。Base64編碼常用于在網(wǎng)頁中嵌入圖像或其他二進制資源。
          2. AES(高級加密標準):AES是一種對稱加密算法,它使用相同的密鑰進行加密和解密。AES有多種密鑰長度,包括128位、192位和256位,密鑰長度越長,安全性越高。前端可以使用JavaScript庫(如CryptoJS)來實現(xiàn)AES加密。
          3. RSA:RSA是一種非對稱加密算法,它使用一對密鑰進行加密和解密。公鑰用于加密數(shù)據(jù),私鑰用于解密數(shù)據(jù)。RSA算法的安全性基于大數(shù)分解問題的困難性。前端可以使用JavaScript庫(如jsencrypt)來實現(xiàn)RSA加密。
          4. SHA(安全散列算法):SHA是一種密碼散列函數(shù),它將任意長度的數(shù)據(jù)映射為固定長度的散列值。SHA算法常用于生成數(shù)據(jù)的數(shù)字簽名或驗證數(shù)據(jù)的完整性。前端可以使用JavaScript內(nèi)置的函數(shù)(如`crypto.subtle.digest`)來實現(xiàn)SHA散列。
          5. HMAC(基于密鑰的散列消息認證碼):HMAC是一種基于密鑰和散列函數(shù)的消息認證碼算法,它可以用于驗證消息的完整性和認證消息的來源。HMAC結(jié)合了密鑰和散列函數(shù)的優(yōu)點,提高了安全性。前端可以使用JavaScript庫(如CryptoJS)來實現(xiàn)HMAC。

          在實際應(yīng)用中,前端數(shù)據(jù)加密通常不是孤立的,而是與后端服務(wù)協(xié)同工作。前端可以使用上述加密算法對敏感數(shù)據(jù)進行加密,然后將加密后的數(shù)據(jù)傳輸給后端進行進一步處理。后端在接收到加密數(shù)據(jù)后,可以使用相應(yīng)的解密算法進行解密,并對數(shù)據(jù)進行處理。

          此外,前端還可以采用其他安全措施來增強數(shù)據(jù)加密的效果,例如使用HTTPS協(xié)議進行數(shù)據(jù)傳輸,以確保數(shù)據(jù)在傳輸過程中的安全性。同時,前端開發(fā)者還應(yīng)注意保護密鑰的安全,避免密鑰泄露導(dǎo)致加密失效。

          、老方法:讓文字藏身于文件中

          其實這種方法已經(jīng)流傳很久了,但效果很好,本法適用于藏身的文件種類較多,像EXE可執(zhí)行文件、MP3音樂文件都行,最經(jīng)典的是用圖片文件(BMP或JPG)。它的原理很簡單,就是一個加法合成,將需要加密的文字信息(事先保存在一個TXT文本文件中)追加到BMP圖片文件的后面。首先在D盤中新建一個1.txt文件,里面的內(nèi)容是待加密的文本信息:接著將一個圖片文件1.bmp也復(fù)制到D盤,它是藏身文本信息的“母體”;然后執(zhí)行“開始”→“運行”菜單命令,輸入“CMD”并確定以打開系統(tǒng)的命令行窗口,輸入“d:”并且回車由系統(tǒng)目錄轉(zhuǎn)入D盤;輸入一條COPY命令:“copy1.bmp/b+1.txt2.bmp”,回車后系統(tǒng)會提示“已復(fù)制1個文件”,這條命令的功能是用圖片文件1.bmp和文本文件1.txt“加”起來生成第三個文件2.bmp。此時已經(jīng)大功告成,如果直接在“我的電腦”中雙擊打開這個含有文字信息的圖片文件2.bmp的話,系統(tǒng)將會調(diào)用本機的看圖程序來打開,所看到的是與原圖(1.bmp)一模一樣的圖片,唯一一的區(qū)別就是文件的大小是圖片文件1.bmp和文本文件1.txt的和,而由于文本文件1.txt一般都非常小(kB級而已),所以一般都不會覺察到。

          加密倒是加密了,那么如何還原出1.txt中文本文件的內(nèi)容呢?很簡單,在新的2.bmp文件上右鍵單擊選擇“打開方式”→“選擇程序”,在彈出的“打開方式”窗口中選擇“記事本”程序后確定,系統(tǒng)會馬上調(diào)用記事本來打開這個圖片文件2.bmp。在打開的記事本窗口中前面99%的內(nèi)容都是亂碼,也就是原圖片文件1.bmp的內(nèi)容,拖動滾動條到文件的最后,就會看到文本信息的原形。這種方法的優(yōu)點是不需要第三方軟件,直接使用系統(tǒng)自帶的COPY命令;缺點是誰都可以用修改“打開方式”調(diào)用記事本的方法來打開“新”圖片文件,而看到最后面的文字信息。

          二、新招式:讓文字變身為二維碼

          這次不能赤手空拳了,需要使用一個小工具,下載地址是http://www.52z.com/SOFt/12982.html,名字叫QRCode。下載解壓后會得到一個文件PsQREditchs,雙擊后就可以使用了。

          界面以及使用方法都非常簡單,首先單擊選擇下方的第四個選項卡“文本信息”,然后在輸入框中輸入你想要加密的文字信息(軟件支持文字的復(fù)制和粘貼),在輸入文字的過程中你會發(fā)現(xiàn)上方的空白處會出現(xiàn)一個奇怪的黑白四方圖形,這就是所謂的“二維碼”,而且它會隨著所輸入文字信息的增加而越來越復(fù)雜、越來越密。文字信息輸入完成后,單擊選中窗口下方的“加密”選項,并且在前面的“加密密碼”框中輸入設(shè)定的密碼。最后單擊上方工具欄的第三個“存盤”按鈕,按照提示選擇保存路徑并且命名,這樣就得到了所輸入文字信息的帶密碼保護的加密信息,這個文件是一個BMP位圖文件。從表面上看什么也看不出來,就是一個黑白花紋矩形塊,可以把它通過電子郵件或QQ傳送給朋友,即便別人中途截獲也絲毫看不出其中所藏的文字信息。朋友接收到這幅“圖片”后,再運行QRCode軟件把它讀取進來,并且要輸入生成圖片時設(shè)置的密碼,這樣就會還原出原來的文字信息了。


          主站蜘蛛池模板: 国产精品盗摄一区二区在线| 人妻少妇精品视频一区二区三区| 亚洲一区二区三区免费| 亚欧成人中文字幕一区| 国产乱人伦精品一区二区在线观看| 精品人妻少妇一区二区| 日本一区二区三区在线观看视频| 麻豆AV一区二区三区| 在线观看午夜亚洲一区| 精品日韩在线视频一区二区三区| 国模极品一区二区三区| 无码一区18禁3D| 亚洲香蕉久久一区二区 | 国产Av一区二区精品久久| 亚洲av不卡一区二区三区 | 亚洲综合激情五月色一区| 一区二区三区视频在线| 亚洲AV综合色一区二区三区| 岛国精品一区免费视频在线观看| 日韩AV在线不卡一区二区三区| 天堂一区人妻无码| 精品无码人妻一区二区三区18| 亚洲色精品三区二区一区| 亚洲一区二区三区免费观看| 精品一区二区三区波多野结衣| 久久se精品一区二区国产| 日韩人妻一区二区三区免费| 97av麻豆蜜桃一区二区| 亚洲一区中文字幕在线观看| 亚洲日韩AV无码一区二区三区人| 亚洲综合色一区二区三区小说| 波多野结衣一区二区三区| 色窝窝免费一区二区三区| 国模一区二区三区| 一区二区三区免费精品视频| 国产在线精品一区免费香蕉| 久久青草国产精品一区| 日韩一区二区视频| 精品国产日韩亚洲一区91| 久久久久国产一区二区| 狠狠综合久久AV一区二区三区|