java 加密 填充模式_java – 加密(模式和填充)

不,对于发送消息,您应该使用较新的OAEP方案,因为具有PKCS#1 v1.5的RSA可能容易受到

Bleichenbacher attack的影响.但是,完全可能甚至可能请求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创建密钥).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值