作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
非常接近已经问过的XOR Encryption in Java: losing data after decryption :
与种子 SecureRandom 产生的字节流进行异或运算看起来既简单又快速,例如:
byte[] data = <data to encrypt>
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
random.setSeed("myPassword".getBytes(Charset.forName("UTF-8")));
byte[] mask = new byte[1];
for(int ii = 0; ii < len; ii++) {
sr.nextBytes(mask);
data[ii] = (byte)(0xFF & (data[ii] ^ mask[0]));
}
由于这种方法在对称加密中不是最常用的,它有什么问题?
最佳答案
有几个问题,但主要问题是,如果您只有伪-随机性,那么您就有伪-安全性。另一方面,真正的随机不会根据种子给出相同的字节,因此您必须将整个 key 流放在手边。
在该示例中,不要让 SecureRandom
欺骗您。攻击 SHA1PRNG
算法比攻击真正的加密算法(例如 AES
)要容易得多。
关于java - XORing 与 SecureRandom 字节流的弱点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39219376/
多年来,我不止一次遇到过这种情况。您有一堆与用户相关的数据要从一个应用程序发送到另一个应用程序。第二个应用程序应该“信任”这个“ token ”并使用其中的数据。 token 中包含时间戳以防止盗窃/
我想知道使用 LOGO 是否有任何真正的缺点?我知道它是用来教 child 的,但理论上它可以用于更高级别的项目。除了它的许多不同版本之外,还有什么真正的缺点吗? 最佳答案 除了实际问题(跨平台支持、
我是一名优秀的程序员,十分优秀!