我正在尝试加密通过邮递员发送到@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 对象的密钥,这样我就可以稍后在其他类中再次使用它来解锁加密的字符串。
互联网上的大多数教程都是关于密码算法的,其他教程则以相同的方法解密加密文件,这在现实世界的项目中完全无用,这不是我想要的。
我需要知道如何存储、存储在哪里以及如何再次检索这些密钥以进行解密。
提前致谢。
智慧大石
相关分类