在我的场景中,应用程序用户不应该能够操纵一组字符串,因为它们是不完整的游戏分数,在完成游戏时会进入排行榜。如果他们修改它们是不必要的优势。 我测试了字符串加密并使用此处显示的代码存储在文件中 https://github.com/tozny/java-aes-crypto/blob/master/AesCbcWithIntegrityTests.java
它说
注意:如果您要生成随机密钥,您可能会将其存储在某处
什么是存储此密钥的最佳位置,或者是否有更好的方法来实现我的目标。
try {
SecretKeys key;
key = generateKey();
//Note: If you are generating a random key, you'll probably be storing it somewhere
// The encryption / storage & display:
String keyStr = keyString(key);
key = null; //Pretend to throw that away so we can demonstrate converting it from str
String path = getPath();
String textToEncrypt = savePuzzle(path + "/intput.txt");
Log.i("Tozny", "Before encryption: " + textToEncrypt);
// Read from storage & decrypt
key = keys(keyStr); // alternately, regenerate the key from password/salt.
CipherTextIvMac civ = encrypt(textToEncrypt, key);
String temp = civ.toString();
Log.i("Tozny", "Encrypted: " + temp);
CipherTextIvMac civ2 = new CipherTextIvMac(temp);
String decryptedText = decryptString(civ2, key);
答案 0 :(得分:1)
使用AndroidKeyStore添加keystoreEntry。
此链接可以帮助您: http://developer.android.com/training/articles/keystore.html
答案 1 :(得分:0)
有很多方法。
- 提供资源(可以很容易地反编译)
这对你有用。