導航:首頁 > 文檔加密 > js非對稱加密go解密

js非對稱加密go解密

發布時間:2025-07-29 16:28:12

『壹』 jsencrypt實現前端RSA非對稱加密解密(vue項目)

最近一個vue項目要求所有密碼數據需要使用RSA非對稱加密傳輸,以為挺簡單,結果開發過程中還是遇到了些問題,簡單做個筆記。同時也希望可以幫助到遇到同樣問題的道友門。

重點來了:使用jsencrypt實現RSA非對稱加解密
因為這里直接在前端加解密,所以需要一對現成的密鑰,我們通過 密鑰在線生成器 得到:

然後在需要使用的文件中引入JSEncrypt,我是將所有工具函數都封裝在一個js文件的,我就直接在該文件中引入,我看也有人是在main.js中引入的。

到這里我們的加密解密方法就完成了,在需要的地方直接拿過來用就好了!

大功告成!這樣就完了?我以為這樣就ok了。

當然,如果沒有遇到這個bug,就可以忽略下面的內容了。
從上面截圖可以看到,重啟項目的時候報錯: navigator is not defined
而且這個bug有點奇葩,先啟動項目再引入jsencrypt就什麼問題都沒有,但是先引入jsencrypt再啟動項目就報錯。這也是我前面能順利執行的原因所在。
通過好一通折騰,用了網上的各種方法,比如在main.js引入jsencrypt、引入jsdom之類的,都沒能解決這個問題,最終還是在jsencrypt的git相關 issue 下找到了這個問題的解決方案。

到這里問題就算基本解決了,但是由於項目組不止我一個前端,我不能要求每個同事或者以後接手維護項目的同事都要在node_moles中去替換文件。
所以就採用了另外一種方案:將jsencrypt.js通過在線js壓縮器壓縮至jsencrypt.min.js中,然後把jsencrypt.min.js放到src/assets/jsencrypt文件夾中,就不用npm install的方式了。
換了種方式,jsencrypt的引用方式需要做出相應的調整:

參考鏈接: RSA非對稱加密傳輸---前端加密&解密(VUE項目)
https://github.com/travist/jsencrypt/issues/144
PS:才疏學淺,如果有考慮不周之處或者有更好的解決方案,歡迎指正探討!

『貳』 js中常見的數據加密與解密的方法

加密在我們前端的開發中也是經常遇見的。本文只把我們常用的加密方法進行總結。不去糾結加密的具體實現方式(密碼學,太龐大了)。

常見的加密演算法基本分為這幾類,

RSA加密:RSA加密演算法是一種非對稱加密演算法。在公開密鑰加密和電子商業中RSA被廣泛使用。(這才是正經的加密演算法)

非對稱加密演算法:非對稱加密演算法需要兩個密鑰:公開密鑰(publickey:簡稱公鑰)和私有密鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。

DES全稱為Data Encryption Standard,即數據加密標准,是一種使用密鑰加密的塊演算法

DES演算法的入口參數有三個:Key、Data、Mode。其中Key為7個位元組共56位,是DES演算法的工作密鑰;Data為8個位元組64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。

AES這個標准用來替代原先的DES

DES/AES我們合並在一起介紹其用法和特點

Base64是一種用64個字元來表示任意二進制數據的方法。base64是一種編碼方式而不是加密演算法。只是看上去像是加密而已(嚇唬人)。

『叄』 java和js實現 RSA+AES介面驗簽和參數加密 對稱加密非對稱加密

在Java和JavaScript中實現RSA+AES的介面驗簽和參數加密,可以按照以下步驟進行

一、總體流程

  1. 生成AES密鑰:調用方生成一個AES密鑰,用於對請求參數進行加密。
  2. RSA加密AES密鑰:調用方使用接收方的RSA公鑰對AES密鑰進行加密,確保密鑰在傳輸過程中的安全性。
  3. AES加密請求參數:調用方使用AES密鑰對請求參數進行加密。
  4. 傳輸加密數據:調用方將加密後的請求參數和RSA加密後的AES密鑰一起發送給接收方。
  5. RSA解密AES密鑰:接收方使用自己的RSA私鑰解密AES密鑰。
  6. AES解密請求參數:接收方使用解密後的AES密鑰對請求參數進行解密。
  7. 驗簽:接收方對解密後的請求參數進行驗簽,確保數據的完整性和真實性。

二、Java實現

  1. AES加密解密

    • 使用Java的javax.crypto包中的類來實現AES加密和解密。
    • 需要指定加密模式、填充方式等。
  2. RSA加密解密

    • 使用Java的java.security和javax.crypto包中的類來實現RSA加密和解密。
    • 需要載入RSA公鑰和私鑰。
  3. 工具類設計

    • 設計AES工具類和RSA工具類,分別負責AES和RSA的加密解密操作。
    • 可以使用單例模式或依賴注入等方式管理這些工具類。
  4. 實體對象和過濾器

    • 設計請求和響應的實體對象,包含與業務相關的成員變數。
    • 設計過濾器,用於在請求到達controller層之前對請求參數進行解密和驗簽處理。

三、JavaScript實現

  1. AES加密解密

    • 使用Node.js的crypto模塊來實現AES加密和解密。
    • 同樣需要指定加密模式和填充方式。
  2. RSA加密解密

    • 使用Node.js的nodersa庫或類似的庫來實現RSA加密和解密。
    • 需要載入RSA公鑰和私鑰。
  3. 工具函數設計

    • 設計AES和RSA的加密解密工具函數。
    • 這些函數可以在請求發送前和響應接收後被調用。
  4. 請求處理

    • 在發送請求前,使用AES加密請求參數,並使用RSA加密AES密鑰。
    • 在接收響應後,使用RSA解密AES密鑰,並使用AES解密響應參數。

四、注意事項

閱讀全文

與js非對稱加密go解密相關的資料

熱點內容
在maya中如何退出多邊形編譯 瀏覽:878
瓷器款pdf 瀏覽:988
怎麼讓安卓手機界面豎屏 瀏覽:905
利用命令方塊快速填滿發射器 瀏覽:567
安卓8核處理器如何 瀏覽:683
python口訣for 瀏覽:504
手機126郵件伺服器怎麼填 瀏覽:932
devc編譯異常 瀏覽:457
雲伺服器出租好乾嘛 瀏覽:858
湖南長沙伺服器秒殺雲主機 瀏覽:742
nb系列網路型可編程終端 瀏覽:588
linux啟動不了mysql 瀏覽:674
怎麼用伺服器來跑包 瀏覽:639
情智力pdf 瀏覽:935
教學編程視頻軟體 瀏覽:920
linux伺服器綁定域名 瀏覽:704
網路許可加密 瀏覽:315
優什麼的伺服器網站 瀏覽:962
英朗變排量壓縮機 瀏覽:326
單片機遙控編碼 瀏覽:147