2016-07-25 109 views
1

Receiver给了我一个公钥,我需要用它来加密用户名和密码。我做了各种r & d但没有任何作品。 我用如何在php中使用rsa公钥加密数据

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错误。

我也加了开始和结束行到关键,但仍然没有成功 请亲自指导我遵循的步骤,因为我是新的。

+0

$ pubkey = openssl_get_publickey($ pub_key); –

+0

我试过了。在加密中使用$ pubkey,仍然没有成功。仍然有相同的错误。请帮忙。 –

+0

获取公钥需要证书文件 –

回答

1

你试图解码一个看起来没有任何已知格式的密钥。我认为它是由一个不完全理解密码的人制作的,因为它的模数为1023。

如果你看一下十六进制表示你会找到的值的弹性模量:

4D49BB0D2E0FA132D081A6338C178124AB2B1B61A57C6C30D05EAD179BE1040B235E0EE83F3BF29A8F19DC33B7E245FAE7BE96E35CC2DF49E8B519D4F53501E3566D693A66E69D8C812AF66AC6D5D86ED764ED27A91C5828CE860A8B01077C15142B77BF772AFF201577DF8FBE9E92168539480E024DFF51173CD26B65858ACA 

(简单地用一个大小接近1024位结构中的最后一个值)和公用指数与一个值

010001