導航:首頁 > 文檔加密 > 如何實現註解對屬性進行加密

如何實現註解對屬性進行加密

發布時間:2024-07-10 17:15:39

㈠ SpringBoot 請求消息體解密(通信加密解密)

在一些安全性要求較高的項目中,我們希望客戶端請求數據可以做到數據加密,伺服器端進行解密。(單純的HTTPS仍難以滿足安全需要。)

本文基於SpringBoot針對消息體進行解密,目前僅支持請求消息解密。(響應消息過大情況下,加密會帶來嚴重的性能問題。)

流程如下:
使用DES cbc模式對稱加密請求體。要求客戶端請求前加對消息體進行加密,伺服器端通過SpringMVC Advice攔截請求解密後,傳給controller的方法。

@ControllerAdvice註解可以掃描針對Controller層的擴展組件。通過@Sort註解可以使其支持順序載入。
RequestBodyAdviceAdapter是RequestBodyAdvice適配器類,可以方便的擴展所需要的方法。

RequestBodyAdvice功能如下:
允許在請求消息體在被讀取及調用convert轉換成實體之前做一些個人化操作,作用於含有@RequestBody註解的請求。實現此介面的類,需要在RequestMappingHandlerAdapter中配置或通過@ControllerAdvice註解配置。

原文如下:

使用以下註解即可快速開啟全部請求的伺服器端消息體解密功能。

使用scan-annotation可開啟註解所標注的Conrtoller的類或其方法的解密功能。將要解密的方法或類上添加@SecretBody註解。並開啟以下配置:

可以使用annotation-class配置自己的自定義註解:

作用於整個類:

作用於方法:

默認密鑰如下,可以自行修改

前端調用時,需先將要請求的消息體通過DEScbc模式加密消息體(如json字元串)後傳輸。一般在http工具的請求攔截器中進行處理。如為json,仍然需要指定content-type為application/json。
postman請求示例如下:

㈡ PGP軟體的使用操作,怎麼加密文件!

接下來啟動你的TheBat!選擇工具菜單的OpenPGP項的「選擇OpenPGP版本」命令,如下圖:出來「選擇OpenPGP執行」對話框,如下圖:確定之後,再選擇工具菜單的OpenPGP項的「OpenPGP鍵管理器」,如下圖:出現「Key Generation Wizard」(如果你是重裝系統,恢復的PGP里已經有密鑰了,那麼這一步會直接出現PGP的密鑰管理器,如果你要新加密鑰可以選擇「Keys」菜單下的「New Key...」命令,否則,跳過該步。),選擇下一步,出現下圖:如圖操作,再下一步:一般來說,使用RSA演算法的屬於是比較通用的,建議選用,下一步一般來說,2048位的RSA是比較安全的了...... 下一步:再下一步:密碼最長是128位,只要你能記住,越長越好,而且最好是字母和數字混合的,單純的數字作為密碼並不可靠。中間的密碼質量的指示條清楚的展現了的你的密碼長度和安全性。如果你的主板不是Intel的810/815等系列,在你點擊下一步之前,最好做好運動滑鼠的准備,點擊下一步後,就可以開始運動滑鼠了:^_^這下終於知道了Intel為什麼在8XX系列主板晶元組的固件中心(其實就是BIOS)裡面加入硬體的隨機數發生器了吧,呵呵,完成後,點擊下一步:最後,下一步:完成了,呵呵,點擊「完成」,看看成果吧:等等:?!老老實實備份吧......公鑰無所謂,下面的私鑰可是你的命根子:好了,這個最關鍵的搞成了,下面還有幾個參數看看,打開The Bat!工具菜單的OpenPGP項的「OprePGP參數選擇」命令:出來對話框:OK了,確定......過我們知道,PGP是對稱加密,別人要發給你加密郵件,必需得有你的公鑰才行,反過來,你要給別人發加密郵件,也得有別人的公鑰才行,那麼如何獲得別人的公鑰呢?前面說的,你可以把你的公鑰發布到伺服器上去,讓別人查詢,用樣,你也可以自己到伺服器上去找,方法就是啟動PGP密鑰管理器(選擇The Bat!工具菜單的OpenPGP項的「OpenPGP鍵管理器」),選擇Server菜單的「Search...」命令:然後出現Search對話框,選擇合適的條件,搜索內容,然後撥號上網,就可以Search了:找到你要的結果以後,可以在結果上面點擊右鍵,選擇「Import to Local Keyring」命令,就可以把那個公鑰加入你的本地密鑰庫了:不過,以上對於公共郵箱的公鑰,當然可以發布到伺服器上,但是私人郵箱呢?當然不能發布,那麼就只能手工發給人家了:啟動PGP密鑰管理器(選擇The Bat!工具菜單的OpenPGP項的「OpenPGP鍵管理器」),選擇你准備發送的密鑰,點擊右鍵,選擇「Copy」,然後再到郵件內容編輯窗口裡面「粘貼」後(注意,不要修改粘貼上去的內容 )發給對方就行了(放心,不會把你的私鑰給貼出來的^_^):發是發出去了,但是收呢?如果你收到別人的內容里附有公鑰的郵件,你可以直接選擇The Bat!工具菜單的OpenPGP項的「輸入OpenPGP鍵」命令,就可以直接將他的公鑰導入了:至此,設置部分全部結束......好了,萬事俱備了,讓我們來試一把:按照正常的方法寫信,徹底寫完以後(不需要再改了),選擇郵件編輯窗口的「秘密」菜單的「OpenPGP」項,如下圖:選擇一個以後,會出來對話框:好了,OK,現在看看那封信?呵呵,出效果了吧,好了,發出去吧......嗯,挺快,收到一封加密的信,怎麼辦?當然是解密了,呵呵,選中那封信,然後選擇The Bat!工具菜單的「OpenPGP」項的「OpenPGP解碼」命令,輸入你的私鑰口令,你會收到一個PGPLOG的對話框,告訴你結果,如果成功了,你會在你的收件箱里找到一封主題為「(PGP Decrypted)」的收發件人和原信一樣的郵件,當然是解密的......(如果是簽名的郵件,和前面一樣,只是然後選擇The Bat!工具菜單的「OpenPGP」項的「檢查OpenPGP簽名」命令,而不是「OpenPGP解碼」命令,PGPLOG窗口會告訴你結果的,當然,也不會有解密的郵件出現):呼呼,終於結束了,呵呵,反正基本的PGP的郵件功能就這么多了。當然,PGP的高級功能還有很多,而且PGP並不是只能用在郵件加密上,而且還能應用於加解密文本、圖片,加解密其他文件,乃至於擦寫磁碟等等一系列的功能,這些,就請各位自己去開發、擴展了,呵呵呵呵^_^參考: http://netsecurity.51cto.com/art/200512/14945.htm 網站圖文並茂,註解詳細,極適合初學者

㈢ spring jpa之實體屬性類型轉換器AttributeConverter,自定義Converter,通用Converter

在JPA註解中,有個@Convert註解,其中需要傳入一個Class作為convert參數,該class需要實現AttributeConverter<X,Y>介面。下面來看看AttributeConverter介面的作用。

實體屬性類型轉換器。主要使用場景:

簡單化操作,用持久化enum枚舉來進行一個操作。 AttributeConverter<X,Y> 該介面中需要實現兩個方法:

場景:用戶登錄時,記錄用戶的動作:登錄,登出,注冊,重置密碼。

數據的加密和日期的轉換也就類似的操作了。

但是這樣的每個枚舉可能都要去寫這樣的轉換類,可能會存在重復的操作。可以嘗試寫個通用的枚舉轉換類。

㈣ 如何在西門子PLC程序中輸入註解

· 項目組件注釋 · 網路注釋 · 項目組件屬性項目組件注釋 在「網路1」上方的灰色方框中單擊,輸入POU注釋。 您可以單擊「切換POU注釋」按鈕 或選擇和取消選擇檢視(View)> POU注釋(POU Comments)選項,在POU注釋「打開」(可視)或「關閉」(隱藏)之間切換。 每條POU注釋所允許使用的最大字元數為4,098。POU注釋是供選用項目,可視時,始終位於POU頂端,並在第一個網路之前顯示。 西門子PLC的網路標題: 將游標放在網路標題行的任何位置,輸入一個識別該邏輯網路的標題。昆侖通態觸摸屏網路標題中可允許使用的最大字元數為 127。 西門子PLC的網路注釋: 在「網路1」下方的灰色方框中單擊,輸入網路注釋。您可以輸入識別該邏輯網路的注釋,並輸入有關網路內容的說明。 您可以單擊「切換網路注釋」按鈕 或選擇和取消選擇檢視(View)> 網路注釋(Network Comments)選項,在網路注釋「打開」(可視)和「關閉」(隱藏)之間切換。 威綸觸摸屏的網路注釋中可允許使用的最大字元數為4,096。 西門子PLC的項目組件屬性: 您可以用以下兩種方法中的一種存取「屬性」標記。 用滑鼠右鍵單擊指令樹中的POU ,並從滑鼠右鍵菜單中選擇「屬性」。「一般」標記 「一般」標記允許您為子例行程序、中斷例行程序和主程序塊(OB1)重新編號和重新命名,並為項目指定一個作者。 注釋:您不能將默認名稱(STEP 7- Micro/WIN指定的POU地址,例如,SBR1代表子例行程序或INT1代表中斷例行程序)用作符號名,因為這樣即構成 STEP 7-Micro/WIN會報告一則錯誤。 如果您在程序中為POU指定符號名,符號名會在程序代碼中顯示,即使您沒有啟用「符號編址」視圖亦如此。符號表顯示一個列出所有符號名賦值的標記(「POU符號」)。您只能檢視該標記;但無法從符號表編輯條目。欲改變賦值,您必須編輯 適當的POU的「屬性」對話框。 「保護」標記 「保護」標記允許您選擇一個密碼保護POU,以便其他用戶無法看到該POU,並在下載時加密。欲用密碼保護POU: 1. 用滑鼠單擊「主POU」,並選擇「屬性...」。 2. 選擇「保護」標記。 3. 選擇「用密碼保護該POU」復選框。輸入一個四個字元的密碼並核實該密碼。

㈤ Spring boot-手把手教你使用Token

JWT由三部分組成,由類型和加密演算法的head(頭部),包含公共信息和自定義信息的playboard(負載),以及signature(簽名)組成。

就是頭部信息,這是由base64加密後的密文,base64是一種對稱加密演算法,解密後的json格式如下。頭部信息由type(類型)和 alg(加密演算法)組成。類型就是"JWT",加密演算法一般使用 HMAC SHA256加密演算法。

0 就是負載信息,加密後的json格式如下。負載信息一般由標准申明,公共聲明,私有聲明組成。

iss: jwt簽發者
sub: jwt所面向的用戶
aud: 接收jwt的一方
exp: jwt的過期時間,這個過期時間必須要大於簽發時間
nbf: 定義在什麼時間之前,該jwt都是不可用的.
iat: jwt的簽發時間
jti: jwt的唯一身份標識,主要用來作為一次性token,從而迴避重放攻擊。

公共的聲明和私有的聲明可以添加任何的信息,一般添加用戶的相關信息或其他業務需要的必要信息。但不建議添加敏感信息,因為該部分在客戶端可解密。

第三部分簽名是由base64加密後的頭部信息和負載信息以及secret組成的簽名,簽名演算法是有頭部信息定以的加密演算法,一般是HMAC SHA256。然後頭部,負載,簽名三部分組成了token。

pom.xml引入依賴

新增controller,提供token介面

CallbackService 生成token

返回的示例如下

定義自定義註解,在需要token校驗的方法上加上即可

新增AuthenticationInterceptor對第三方請求進行攔截,實現HandlerInterceptor介面

注冊AuthenticationInterceptor攔截器,對指定請求路徑進行攔截

在此文中,我們大致了解了Token的定義,獲取,校驗等方法。此外,Token 的無狀態,可擴展性,多平台跨域等特性,也讓Token廣泛應用在安全校驗領域中。在接下來的幾篇文章中,我將介紹如何使用Spring AOP進行加密,解密,驗簽等操作。

參考:
https://www.jianshu.com/p/576dbf44b2ae

㈥ 這段MD5加密演算法是什麼意思,誰能幫我解釋下不會java看不懂。。。求逐行註解下。越通俗越好。謝謝

package com.util; // 包名
/**
*MD5密碼加密類
*
*/

import java.security.*; // 引入java.security包下的所有類
import java.security.spec.*;
public final class MD5 { // 命名類

public final static String MD5(String s){ // 靜態 final 方法
char hexDigits[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
'e', 'f'}; // char類型數組,變數名為hexDigits
try {
byte[] strTemp = s.getBytes(); // 把參數 s 轉換成byte類型數組
MessageDigest mdTemp = MessageDigest.getInstance("MD5"); // 得到一個MessageDigest 類型的變數mdTemp,提供

信息摘要演算法的功能
mdTemp.update(strTemp); // 更新摘要
byte[] md = mdTemp.digest(); // 這個方法應該是加密後返回的byte數組
int j = md.length; // 記錄md的長度
char str[] = new char[j * 2]; // 存儲結果用
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // hexDigits 數組中對應的十六進制數放入str中
str[k++] = hexDigits[byte0 & 0xf]; // 有高人嗎?再解釋一下?
}
return new String(str); // 返回加密後的字元串
}
catch (Exception e){
return null; // 如果有異常返回null
}
}
}

㈦ C++ 一個關於加密解密的程式 寫註解

那幾個頭文件按是編程者自己加上去的。
因為,代碼中用到了若干庫函數,例如remove(), rename(0, getch(), isdigit(), puts()等等
有些庫函數不是在stdio.h中聲明的,所以編譯的時候會提示沒有對應的函數,
需要把那些函數所對應的頭文件包含進來。

閱讀全文

與如何實現註解對屬性進行加密相關的資料

熱點內容
viper4android安卓60 瀏覽:485
java軟體源碼 瀏覽:159
空氣壓縮機的類型 瀏覽:352
centos圖形命令行界面切換 瀏覽:237
新京報新聞APP什麼時候有的 瀏覽:818
華為手機文件夾重命名空白 瀏覽:742
通俗理解螞蟻演算法 瀏覽:555
俠盜獵車手怎麼注冊伺服器 瀏覽:341
去商場吃飯預約什麼app 瀏覽:776
nginx不能解析php 瀏覽:135
安卓系統如何轉換中文 瀏覽:316
小米手機用什麼下載非官方app 瀏覽:760
linux修改readonly 瀏覽:32
演算法時代我們能做什麼 瀏覽:928
牛津英語搭配詞典pdf 瀏覽:284
慧連a6怎麼連接安卓 瀏覽:235
python使用什麼編譯器最好 瀏覽:52
小程序編譯藍屏 瀏覽:947
程序員賽車的gif 瀏覽:413
購買新車能用到什麼app 瀏覽:775