資源簡介
登錄時,用戶的密碼用明文傳輸,太不安全,應該加密傳輸,怎么做呢,對稱加密一旦秘鑰丟失則形同虛設,最好使用非對稱加密的方式,由后端事先生成公鑰和私鑰,公鑰發給前端頁面,私鑰后端自己保留,前端進行認證時,把密碼原文用公鑰加密再發給后端,后端用私鑰解密而得到原文。非對稱加密算法常用RSA算法,秘鑰使用base64編碼成字符串,后端使用jdk8的標準API,前端使用jsencrypt.js進行RSA的對應操作。經過測試,本例中的前后端代碼的加密解密計算結果是一致的。
代碼片段和文件信息
package?com.test.service;
import?java.io.ByteArrayInputStream;
import?java.io.ByteArrayOutputStream;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileOutputStream;
import?java.io.InputStream;
import?java.io.OutputStream;
import?java.util.base64;
/**
?*?base64編碼解碼工具包
?*/
public?class?base64Util?{
/**
?*?文件讀取緩沖區大小
?*/
private?static?final?int?FILE_BUFFER_SIZE?=?1024;
/**
?*?二進制原文?編碼為?base64字符串
?*/
public?static?String?encode(byte[]?bytes)?throws?Exception?{
return?base64.getEncoder().encodeToString(bytes);
}
/**
?*?base64字符串?解碼為?二進制原文
?*/
public?static?byte[]?decode(String?base64Str)?throws?Exception?{
return?base64.getDecoder().decode(base64Str);
}
/**
?*?base64數據?解碼為?二進制原文
?*/
public?static?byte[]
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2920??2020-02-10?20:46??test\client\網頁客戶端.html
?????文件???????2586??2020-02-10?19:38??test\service\ba
?????文件???????3830??2020-02-10?19:38??test\service\RsaUtil.java
?????目錄??????????0??2020-02-10?20:32??test\client
?????目錄??????????0??2020-02-10?19:38??test\service
?????目錄??????????0??2020-02-10?19:38??test
-----------?---------??----------?-----??----
?????????????????9336????????????????????6
- 上一篇:微機原理 課程設計 數字秒表
- 下一篇:數據結構設計性實驗----表達式類型的實現
評論
共有 條評論