我是加密新手.
我查看了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();
Run Code Online (Sandbox Code Playgroud)
但是,如果你是一个聪明的黑客(或者甚至可能是业余的,因为我发现了这一点),你所要做的就是打开包含这段代码的类文件,加密密钥(My Encryption Key98)清晰可见.
你如何加密加密密钥?......大声笑......你呢?
谢谢你的帮助!
如果攻击者可以访问软件和文件,它可以解密它.有一些方法可以解决这个问题:
如果程序需要加密和解密数据,那么你无能为力.攻击者可以简单地运行程序并查看解密的信息.
| 归档时间: |
|
| 查看次数: |
9197 次 |
| 最近记录: |