gpt4 book ai didi

Java 加密替代硬编码 key

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:48 26 4
gpt4 key购买 nike

我是加密新手。

我查看了 javax.crypto 文档并使用此代码加密了一个文件...

File saveFile = new File("Settings.set");
saveFile.delete();
FileOutputStream fout = new FileOutputStream(saveFile);

//Encrypt the settings
//Generate a key
byte key[] = "My Encryption Key98".getBytes();
DESKeySpec desKeySpec = new DESKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey skey = keyFactory.generateSecret(desKeySpec);

//Prepare the encrypter
Cipher ecipher = Cipher.getInstance("DES");
ecipher.init(Cipher.ENCRYPT_MODE, skey);
// Seal (encrypt) the object
SealedObject so = new SealedObject(this, ecipher);

ObjectOutputStream o = new ObjectOutputStream(fout);
o.writeObject(so);
o.close();

但是,如果您是一个聪明的黑客(或者甚至是业余爱好者,因为我已经弄明白了),您所要做的就是打开包含此代码的类文件,并且加密 key (我的加密 key 98)是清晰可见的.

如何加密加密 key ? ...大声笑...你可以吗?

感谢您的帮助!

最佳答案

如果攻击者可以同时访问软件和文件,则可以对其进行解密。有一些方法可以解决这个问题:

  • 使用非对称 key 。用公钥加密文件,只能用私钥解密。这假设软件不需要解密文件。
  • 使用 Diffie-Hellman 交换。如果您想通过网络发送一段加密的数据,双方可以在攻击者不知道的情况下建立一个 key 。

如果程序需要同时对数据进行加密和解密,则您无能为力。攻击者可以简单地运行程序并查看解密后的信息。

关于Java 加密替代硬编码 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188171/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com