是否可以使用Cryptico从密码生成RSA公钥,然后使用PHP使用该公钥对消息进行加密,然后使用JavaScrpt使用原始密码对其进行解密?
Cryptico本身似乎工作得很好,但我正在尝试使用phpseclib来加密使用Cryptico生成的公钥的消息,但我没有得到输出。即使我这样做了,我能用base64对它进行编码和解密吗?
使用位设置为1024的密码"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;
?>有人知道我错过了什么吗?-或者这是不可能的,我在浪费我的时间?
编辑:-代码我使用的是re 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;
?>发布于 2013-12-22 00:30:56
是的,这是可以工作的,因为Cryptoco库似乎只使用标准的加密原语。您的PHP代码似乎需要PEM编码的公钥。但是,Cryptoco似乎只生成base64编码,因此您需要用PEM页眉和页脚将编码的公钥括起来:
-----BEGIN PUBLIC KEY-----
XEjrqvt5K3pjM2m98ZFQOf9fObVNKPJQ9TYbo4sdNPaUO0NKdLtno8hXa292MiAmwip9JOiplmSQVEvpEnfebGNFFzqNgd4hAS6oXD6zHexVHsHpFTYxfVFQE93eHtbz0Mi7l64rnq6UOQKAB53CXVUev6RqyR6hs4oBiJRAOCs=
-----END PUBLIC KEY-----我会回避任何没有支持组织或知名密码学家支持的加密库。
https://stackoverflow.com/questions/20714779
复制相似问题