Encryption SonarQube:确保加密数据在这里是安全的。AES/GCM/NoPadding、RSA/ECB/PKCS1Padding
我正在使用: 1。RSA/ECB/PKCS1P添加 2。AES/GCM/NoPadding 在我的Android(Java)应用程序中加密我的数据。在SonarQube会议上,声明: 高级加密标准(AES)加密算法可用于各种模式。无填充的伽罗瓦/计数器模式(GCM)应优先于以下未固定的组合:Encryption SonarQube:确保加密数据在这里是安全的。AES/GCM/NoPadding、RSA/ECB/PKCS1Padding,encryption,rsa,aes,padding,aes-gcm,Encryption,Rsa,Aes,Padding,Aes Gcm,我正在使用: 1。RSA/ECB/PKCS1P添加 2。AES/GCM/NoPadding 在我的Android(Java)应用程序中加密我的数据。在SonarQube会议上,声明: 高级加密标准(AES)加密算法可用于各种模式。无填充的伽罗瓦/计数器模式(GCM)应优先于以下未固定的组合: 电子码本(ECB)模式:在给定的键下,任何给定的 明文块始终加密到同一密文块。 因此,它不能很好地隐藏数据模式。从某种意义上说,它不是 提供严格的消息保密性,不建议这样做 用于加密协议中 使用PKCS#5
- 电子码本(ECB)模式:在给定的键下,任何给定的 明文块始终加密到同一密文块。 因此,它不能很好地隐藏数据模式。从某种意义上说,它不是 提供严格的消息保密性,不建议这样做 用于加密协议中李>
- 使用PKCS#5填充(或PKCS#7)的密码块链接(CBC)是 易受oracle攻击
AES/GCM/NoPadding
作为:
Cipher c = Cipher.getInstance("AES/GCM/NoPadding");
但是,它仍然向我发出警告,请确保加密数据在这里是安全的。
同样适用于:
Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
为什么SonarQube会抛出该警告?
这些使用不再安全了吗?似乎是关于加密任何数据的一般警告。“AES/GCM/NoPadding”不应该有问题,因为。GCM模式下的AES是作为分组密码算法进行保护的。但这并不能保证使用AES(在GCM模式下)加密数据的代码是安全的。一些事情可能会出错,使代码容易受到攻击。开发人员有责任以正确的方式编写代码,以获得所需的安全级别。一些可能出现问题的例子如下:
String
数据类型中,该数据类型一直在堆中徘徊另外,这个答案解释了如何在GCM模式下用AES在Java中以安全的方式加密字符串:欢迎使用crypto.stackexchange-这似乎是一个编程问题,编程问题在这里是离题的,即使程序使用加密技术。编程问题属于stackoverflow。我可以帮你把这个迁移到那里。警告是什么?@JamesKPolk
确保加密数据在这里是安全的。
是的,但是有什么方法可以消除这个问题吗?