專案背景:
需要對專案的前後端進行加密傳輸,後台統一處理,此時我們經常會用到spring的aop,方便快捷,以下為書寫過程中的記錄以及總結。
專案環境:springboot
【說明】前台加解密,以及後台加解密過程忽略,各位大佬根據自己專案書寫即可。
主要業務**如下:
@pointcut("@annotation(com.zoro.drei.common.annotation.securityasin)")
public void pointcut()
@around("pointcut()")
public object around(proceedingjoinpoint point) throws throwable
} catch (exception e)
object result = null;
try catch (throwable e)
return result;
}
主要使用乙個切入點,乙個環繞方法,其他的幾個暫時沒用到。
其中最主要的語句為以下兩句,缺一不可;
// 方法形參
object methodargs = point.getargs();
以上這一句是獲取經過加密或者解密後的引數
// 執行方法
result = point.proceed(methodargs);
此句最為重要,意為執行方法,傳入引數和不傳入引數區別很大,傳入引數代表把解密或者加密後的資料返回繼續執行。不傳入引數意為直接執行,與我們的初中並不相符。所以必須把處理過的引數返回controller,controller接收真正意義上的資料,並進行處理。
controller層部分**
//aop介面
@aspect()
@responsebody
public result test(@requestparam string a1,@requestparam string a2,@requestparam string a3,@requestbody map map)
不加aop介面上面的幾個引數都為密文,加上aop後就是我們需要的效果。以及注意上文紅色部分。
ps:真正的留下了沒有技術的眼淚,懂就是幾秒鐘的問題,不懂就是幾個小時的問題。
RSA 加密解密記錄
rsa 加密長度有限,一般只使用在重要的資料上,過長需要拼接。private static void create oaepvar msg 加密測試資訊 rsacryptoserviceprovider rsa new 使用rsa加密。rsa.importcspblob convert.fromba...
java架構解密 用介面改造AOP
優化是個無止境的工作,在aop的路上,我們走得很遠,但是還有很多的工作,我們沒有做,比如,將aop的業務部分封裝成容器,將aop的服務部分改造成面向介面的,這樣就不受具體的形式上的限制了!這樣aop的優化,就又前進了一步,也是符合咱們的面向介面程式設計的思想,下面就和我一起研究下如何將介面的思想融入...
js 幾種常規加密解密方式記錄
base64加密解密是比較簡單,也是安全性較差的一種加密方式,一般用於加密一些不太重要但是又不想他人直接看到的資料,優勢是使用簡單。參考 1.安裝依賴 npm install js base642.引入 import from js base64 3.使用 base64.encode dankoga...