【发布时间】:2014-01-09 23:23:01
【问题描述】:
是否可以使用Cryptico 从密码短语生成 RSA 公钥,然后使用 PHP 使用该公钥加密消息,然后使用 JavaScrpt 使用原始密码短语对其进行解密?
Cryptico 本身似乎工作得很好,但我正在尝试使用 phpseclib 使用 Cryptico 生成的公钥加密消息,但我没有得到输出。即使我这样做了,我是否能够对其进行 base64 编码并使用 Cryptico 对其进行解密?
使用将位设置为 1024 的 passphase“stackoverflow Rocks”,我得到了这个公钥:
XEjrqvt5K3pjM2m98ZFQOf9fObVNKPJQ9TYbo4sdNPaUO0NKdLtno8hXa292MiAmwip9JOiplmSQVEvpEnfebGNFFzqNgd4hAS6oXD6zHexVHsHpFTYxfVFQE93eHtbz0Mi7l64rnq6UOQKAB53CXVUev6RqyR6hs4oBiJRAOCs=
但是,当我使用以下代码时,无论是否使用 PKCS1 行,我都没有得到任何输出。
$rsa = new Crypt_RSA();
$rsa->loadKey('XEjrqvt5K3pjM2m98ZFQOf9fObVNKPJQ9TYbo4sdNPaUO0NKdLtno8hXa292MiAmwip9JOiplmSQVEvpEnfebGNFFzqNgd4hAS6oXD6zHexVHsHpFTYxfVFQE93eHtbz0Mi7l64rnq6UOQKAB53CXVUev6RqyR6hs4oBiJRAOCs='); // public key
$plaintext = 'tester';
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt($plaintext);
echo $ciphertext;
?>
有谁知道我缺少什么来完成这项工作? - 或者这是不可能的,我在浪费时间?
编辑:------------代码我正在使用重新 owlstead 的评论 ------------- 尝试使用和不使用 PKCS1 线
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
XEjrqvt5K3pjM2m98ZFQOf9fObVNKPJQ9TYbo4sdNPaUO0NKdLtno8hXa292MiAmwip9JOiplmSQVEvpEnfebGNFFzqNgd4hAS6oXD6zHexVHsHpFTYxfVFQE93eHtbz0Mi7l64rnq6UOQKAB53CXVUev6RqyR6hs4oBiJRAOCs=
-----END PUBLIC KEY-----'); // public key
$plaintext = 'tester';
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt($plaintext);
echo $ciphertext;
?>
【问题讨论】:
-
致任何读者:请勿使用 CRYPTICO 库,它存在多个安全问题和误解
标签: javascript php rsa phpseclib cryptico