如何使用php中的rsa公钥加密数据

时间:2016-07-25 10:44:51

标签: php encryption rsa public-key-encryption

Receiver给了我一个公钥,我需要用它来加密用户名和密码。我做了各种研究,但没有任何作用。 我用过

function public_encrypt($plaintext)
{
    $fp=fopen("private.key","r");
    $pub_key=fread($fp,8192);
    fclose($fp);
    openssl_get_publickey($pub_key);
    openssl_public_encrypt($plaintext,$crypttext, $pub_key);
    return(base64_encode($crypttext));
}

但它给了我openssl_public_encrypt(): key parameter is not a valid public key错误。

我还在键中添加了开始和结束行,但仍然没有成功 请引导我采取步骤,因为我是新手。

1 个答案:

答案 0 :(得分:1)

您正在尝试解码看似不是任何已知格式的密钥。我认为它是由一个不完全理解加密的人制作的,因为它有1023位模数。

如果查看十六进制表示,您将找到一个值为的模数:

4D49BB0D2E0FA132D081A6338C178124AB2B1B61A57C6C30D05EAD179BE1040B235E0EE83F3BF29A8F19DC33B7E245FAE7BE96E35CC2DF49E8B519D4F53501E3566D693A66E69D8C812AF66AC6D5D86ED764ED27A91C5828CE860A8B01077C15142B77BF772AFF201577DF8FBE9E92168539480E024DFF51173CD26B65858ACA

(只是结构中最后一个大小接近1024位的值)和一个带值的公共指数

010001