栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Bouncy Castle与带有OAEP的Java默认RSA

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Bouncy Castle与带有OAEP的Java默认RSA

对于更多信息,类似的问题#1,请参阅马腾Bodewes答案,这个和这个。

转换字符串的“模式”部分无效。问题是不同提供商使用的默认值不同。这是不幸的,而且绝对是次优的。我们应该责怪Sun /
Oracle吗?除了对结果不满意之外,我没有其他意见。

OAEP是一个相当复杂的构造,具有两个不同的哈希函数作为参数。使用Cipher转换字符串可以指定其中之一,并将其​​指定为SHA-256。但是,MGF1函数也由哈希函数参数化,您无法在密码转换字符串中指定哈希函数。Oracle提供程序默认为SHA1,而BouncyCastle提供程序默认为SHA-256。因此,实际上,存在一个对互操作性至关重要的隐藏参数。

解决方案是通过向方法提供,更完整地指定这些隐藏参数是什么

OAEPParameterSpec
Cipher.init(...)
如以下示例所示:

Cipher encryptionCipher = Cipher.getInstance("RSA/NONE/OAEPWithSHA256AndMGF1Padding", "BC");OAEPParameterSpec oaepParameterSpec = new OAEPParameterSpec("SHA-256", "MGF1",     MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);encryptionCipher.init(Cipher.ENCRYPT_MODE, publicKey, oaepParameterSpec);// ...// ...// ...Cipher decryptionCipher = Cipher.getInstance("RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING");oaepParameterSpec = new OAEPParameterSpec("SHA-256", "MGF1",     MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT);decryptionCipher.init(Cipher.DECRYPT_MODE, privateKey, oaepParameterSpec);

第一个实际上是不操作的,因为这些已经是Bouncycastle的默认设置。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/446684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号