Fem*_*shi -2 java security encryption
我正在使用https://github.com/simbiose/Encryption来加密我的 android 应用程序中的数据。
我想到了双重加密。
String key = "key";
String salt = "someSalt";
byte[] iv = new byte[16];
Encryption encryption = Encryption.getDefault(key, salt, iv);
String encrypted = encryption.encryptOrNull("Some String");
Log.d("Encrypto", "Encryption Level 1 : "+encrypted);
encrypted = encryption.encryptOrNull(encrypted);
Log.d("Encrypto", "Encryption Level 2 : "+encrypted);
String decrypted = encryption.decryptOrNull(encrypted);
Log.d("Encrypto", "Decryption Level 2 : "+decrypted);
decrypted = encryption.decryptOrNull(decrypted);
Log.d("Encrypto", "Decryption Level 1 : "+decrypted);
Run Code Online (Sandbox Code Playgroud)
这很有效,但是否推荐?
主要问题:这是一个好的加密库吗?如果没有请推荐我一个更好的
你真的需要加密数据吗?
https://www.schneier.com/blog/archives/2015/06/why_we_encrypt.html
为什么要双重加密?有更好的方法 - 例如,更长的密钥 - 可以增加对人们对密文进行离线暴力攻击的抵抗力。
“通过默默无闻来确保安全”是一个禁忌。回到您需要的基础知识(密钥长度、块大小、加密模式、何时使用对称或非对称密钥)等。
在您编写 Android 应用程序时,我会质疑..
如果是我的应用程序 && 我关心机密性, 我会使用硬件支持的加密(接受某些较旧的 Android 设备可能不支持它)或使用本机 (C) 加密库。后者为您提供广泛的设备支持,但引入了其他问题(JNI 边界、代码提升)。
总之,引入加密听起来很简单。但是当它只是突出显示一些有趣的东西受到保护时,你真的需要它吗?
PS - 你可能想重新发布这个问题:https : //security.stackexchange.com/
| 归档时间: |
|
| 查看次数: |
873 次 |
| 最近记录: |