不可以,对于发送消息,您应该使用较新的OAEP方案,因为带有PKCS#1 v1.5的RSA可能容易受到Bleichenbacher攻击。但是,请求RSA混合加密的人完全有可能甚至从未听说过该攻击。通常,PKCS#1 v1.5填充仍被用作默认值。
除非唯一的用户是密码学的学生(并且了解上述攻击),否则您永远不要期望用户为您做出安全决策。通常,安全性不应过分依赖于教育用户。
我个人当然会向请求者询问有关填充的信息。您还应该检查对称加密是否需要认证(MAC,HMAC,认证密码或签名)。如果他/她不能回答问题,那么他们可能对加密的了解不多。
我目前不会认为您所获得的要求是完整的(尽管“出于学习目的”可能是一个借口)。
笔记
"RSA/ECB/PKCS1Padding"实际上没有实现ECB模式加密。应该调用
"RSA/None/PKCS1Padding"它,因为它只能用于加密单个明文块(或者实际上是密钥)。这只是Sun / Oracle的命名错误。
还有一种称为RSA-KEM的混合加密模式,该模式应至少与RSA OAEP一样安全,但尚未在Java SE中实现。
AES-256本身不应该用于“生成一次密钥”。您应该使用一个实例
KeyGenerator生成一次AES-256密钥(这可能有点命名混乱,因为它
KeyGenerator本身不使用AES,而是为AES创建密钥)。



