【发布时间】:2020-01-14 11:45:22
【问题描述】:
我正在使用:
1. RSA/ECB/PKCS1Padding
2。 AES/GCM/NoPadding
在我的 Android (Java) 应用程序中加密我的数据。在 SonarQube 的 documentation 中声明:
高级加密标准 (AES) 加密算法可用于多种模式。没有填充的 Galois/Counter 模式 (GCM) 应优先于以下不安全的组合:
- 电子密码本 (ECB) 模式:在给定密钥下,任何给定的 明文块总是被加密为相同的密文块。 因此,它不能很好地隐藏数据模式。从某种意义上说并不 提供严重的消息机密性,不推荐 完全用于加密协议。
- 带有 PKCS#5 填充(或 PKCS#7)的密码块链接 (CBC) 是 容易受到填充预言机攻击。
因此,推荐,我使用AES/GCM/NoPadding 作为:
Cipher c = Cipher.getInstance("AES/GCM/NoPadding");
但是,它仍然给我警告确保这里加密数据是安全的。
同理:
Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
SonarQube 为什么会抛出该警告? 这些用途不再安全了吗?
【问题讨论】:
-
欢迎来到 crypto.stackexchange - 这似乎是一个编程问题,即使程序使用密码学,编程问题在这里也是题外话。编程问题属于stackoverflow。我可以帮你迁移到那里。
-
警告是什么?
-
@JamesKPolk
Make sure that encrypting data is safe here.
标签: encryption rsa aes padding aes-gcm