我正在嘗試加密通過郵遞員發送到@PostMapping方法的字符串值@RestController并將它們存儲在數據庫中。這是我用于加密字符串的代碼 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(1024); keyPair = keyPairGenerator.generateKeyPair(); Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic()); encrypted = cipher.doFinal(this.toBeEncrypted.getBytes("UTF-8"));然后我將此encrypted變量存儲到數據庫中。我有另一個類可以解密存儲在數據庫中的字符串,但它不會解密加密的值,我知道這是因為它沒有正確的密鑰來解密。我嘗試創建KeyPair一個靜態變量,以便我的兩個自定義類,StringEncryptor并StringDecryptor使用相同的密鑰對對象,但是當服務器重新啟動時,它會停止正常工作,所以我相信當服務器重新啟動時,我用來加密/解密的靜態密鑰對對象被重新初始化,因此這不是鎖定 String 變量的鍵。我不確定,但我認為我應該存儲鎖定 String 對象的密鑰,這樣我就可以稍后在其他類中再次使用它來解鎖加密的字符串?;ヂ摼W上的大多數教程都是關于密碼算法的,其他教程則以相同的方法解密加密文件,這在現實世界的項目中完全無用,這不是我想要的。我需要知道如何存儲、存儲在哪里以及如何再次檢索這些密鑰以進行解密。提前致謝。
如何存儲密鑰對并在其他類中使用它進行解密?
慕蓋茨4494581
2023-07-19 15:48:11