爪哇phpseclib、RSA 和 OAEP?

发布于 2024-12-06 15:45:05 字数 628 浏览 1 评论 0原文

我在 phpseclib 中使用 Cipher.getInstance("RSA/ECB/OAEPWITHSHA-512ANDMGF1PADDING")setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP) 在 Java 中进行加密,但 phpseclib 未解密数据正确。

当我在 Java 中使用 RSA/ECB/PKCS1Padding 和在 phpseclib 中使用 setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1) 时,它运行得非常好。

以下是 Java 中支持的密码: http:// /download.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunJCEProvider

这些密码都不与 phpseclib 的 OAEP 兼容 执行?

I am encrypting in Java using Cipher.getInstance("RSA/ECB/OAEPWITHSHA-512ANDMGF1PADDING") and setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP) in phpseclib, but the phpseclib is not decrypting the data correctly.

It worked perfectly when I used RSA/ECB/PKCS1Padding in Java, and setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1) in phpseclib.

Here are the supported ciphers in Java: http://download.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunJCEProvider

Are none of those ciphers compatible with phpseclib's OAEP implementation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吻风 2024-12-13 15:45:05

问题在于所用按键的大小,也让我困惑了一段时间。

要安全地使用 OAEP,您必须使用 >=2048 位 RSA 密钥。

运行

$rsa->setHash('sha512');
$rsa->setMGFHash('sha512');

另外,请确保在 PHP 端的 setEncryptionMode() 之前

编辑:即使使用 sha256,1024 个密钥似乎也无法正常工作,因此我修改了我的答案,仅包含安全的 2048+ 位路由。

The problem lies in the size of the keys used, had me puzzled for a while as well.

To use OAEP safely, you have to use >=2048 bit RSA keys.

Also, make sure you run

$rsa->setHash('sha512');
$rsa->setMGFHash('sha512');

before setEncryptionMode() on the PHP side.

edit: it seems 1024 keys won't work correctly even with sha256, so I've modified my answer to only include the safe 2048+ bits route.

腹黑女流氓 2024-12-13 15:45:05

您可能必须执行 $rsa->setHash('sha512');默认使用 sha1。

You'd probably have to do $rsa->setHash('sha512'); By default sha1 is used.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文