Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSEncrypt到PHP非对称加密_Javascript_Php_Encryption_Encryption Asymmetric_Jsencrypt - Fatal编程技术网

Javascript JSEncrypt到PHP非对称加密

Javascript JSEncrypt到PHP非对称加密,javascript,php,encryption,encryption-asymmetric,jsencrypt,Javascript,Php,Encryption,Encryption Asymmetric,Jsencrypt,我尝试在客户端和服务器之间进行非对称加密,客户端使用公钥,服务器使用私钥 在客户端,我使用javascript中的JSEncrypt使用我的公钥进行加密。从那里,我使用AJAX将加密数据发送到我的PHP脚本。我尝试使用openssl\u private\u decrypt()对数据进行解密,但它总是返回false。我试着告诉它期望不同的填充,即使我确信它是PKCS1 有人能告诉我我做错了什么吗 以下是所有相关代码: JAVASCRIPT: function getpubkey(){ //Gets

我尝试在客户端和服务器之间进行非对称加密,客户端使用公钥,服务器使用私钥

在客户端,我使用javascript中的JSEncrypt使用我的公钥进行加密。从那里,我使用AJAX将加密数据发送到我的PHP脚本。我尝试使用
openssl\u private\u decrypt()
对数据进行解密,但它总是返回false。我试着告诉它期望不同的填充,即使我确信它是PKCS1

有人能告诉我我做错了什么吗

以下是所有相关代码:

JAVASCRIPT:

function getpubkey(){ //Gets Public Key from server
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
        pubkey = this.responseText;
    }
};
xmlhttp.open("POST", "PHP/ajax.php", false);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("do=getpub");
}


function encryptdata(plaintext){ //Encrypts argument with Public Key
var encrypt = new JSEncrypt();
encrypt.setPublicKey(pubkey);
var encrypted = encrypt.encrypt(plaintext);
return encrypted;
}


function login(){ //Sends login data to server and displays response on page
getpubkey();
var encuser = encryptdata(document.getElementById('username').value);
var encpass = encryptdata(document.getElementById('password').value);
encuser = window.btoa(encuser);
encpass = window.btoa(encpass);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200){
            document.getElementById('maincontent').innerHTML = this.responseText;
    }
};
xmlhttp.open("POST", "PHP/ajax.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("do=login&param1="+encuser+"&param2="+encpass);

}
PHP(ajax.PHP):

priv.php:

<?php

if (!isset($allow)){
    header("Location: ../index.php");
    die();
}

$priv = "-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAtzAVRzbQWzZi7wjqA/0magqlWQfKJhrfnCuytqwNR0rMKk+h
Gx1c+1YaPsN0ZMdBVWyBWJYWzlCjWOKx1vnYgBb3MPXn1QvGkrv+WtXX3VQRsPjW
tjaAqLYdjP/m64+pVDr54mt4RzNxi1dQ/PRD6TnjdVhLMpftPv1ELTWCl2tyzSTP
3G2LY4dDVstuhzO8+3R9PaIle7CnVZ/2qSSbHVN4Juzn3zSemjRykoZLoV3VLsHU
2Cb3m21tCMWB7BFlChd2cYiXeZamJHaypvK+6ZjQgEN7IYeb4ALOIx50WntOC67S
29qpG1MZ84TF/OLtVTFWFM+buSCvYpPMMSzSqQIDAQABAoIBAFy/7aYW7Luh98mL
O+E1JWP/a+R9+y374UfTIDM5PafhCSpLEwkFfvSKjdNFZwM3l67Gt17A718amPoC
HYT5D1MbTaDugKjvw2S75nbbWuZnEGYIN74eLlo9iwy+7I5MOLG7ApZPT6DNPSoN
1aWdj1zgwHfDcp91KNwBo6k4NJyxIK0xVSvdcnecpndQ611BUicz3mfMUoa+axDg
GROs7IQvEyYMru0E2/lZdURJS1uNg+T3kyBs3zINibwNEFsf8V3e90haWlMjc5MW
nNFTo4KWPoHZCWIsyMPZfinjEk/5+DKdFFIQAY7YWUhjnu23Qc4oRu4hb+vTFXQt
2FCp2nkCgYEA58QY4zeqhkIPVEWFs/lZDcd/GdwL+/0Dmmm6lUvTQpUG/u0njY9n
JOTyvNc+vH3U9FWm3yPKX+HbARC4CMV/x9jU8QIIa0ARcETjh6BQGaEkIReDeXhq
X3kwcdSuhqK9nrmp1ocGeIYFGZPrrofJI+1gODCMtdgqt9pbN+8UJxsCgYEAylel
rpsFSiAx0bBcZ9kCPHYHpR2kdpcv4iOunpPJLJQ+p0KhCdDA1J7LftlNVS1Pg34W
aD3nundbH0D/8B1qnlXvPIDBGOEbnfnKAdf0ti1cznQoBsIzwa56Fcu8MqK9DQXJ
AHkmEIdHjPtXjM7fEEuz4kRLjcdirV2T5+KZNYsCgYBCioqaseDDqzO7fjpk8bIf
wqc7RXIrZvkh3Dk1pA+DjkXz6yLwAbwbW6BVl3brpzT88Zp3dk8kODQomiQ8YHfP
aPG6QFsqb7qSATVSOzTEJv+4gIe+2FOyFZlTFT0GarMGX0fjz+CLue686TtBYLrf
FcgKWeYMT4P0RTzrUjj3AQKBgQCf/Rtg6uwMx1X88dCuv/S3r6+ty7ldl39h9Eq+
0iWwHOtJPzKr2yaNN525h8JQxgnn84tuEvymAHfJR5DW37uMxG/sS/XiYSOADqC+
Qm4YmdeW2ltHtMhNrVKU50nAU9LdeCSNPj1ttjlJ7PY1vOC9Ns5d6xg+W1fXsnUf
VZlErwKBgQCLWkrCqsxjKvWBQIE7DgtF5e2eFuuwIWwPODn3uNR7DCrpy7PyBVAd
TWrKw+Uu0FmVgEiMWlIWjgse58/ZaBHXzqU5ScsibshJU/tacG+M1uqxAcyr+p03
qkSuqbJ6OqUnOWwATrEFLxt5BVnwLlizp9sPggEIJ6mMdOW9J6wONA==
-----END RSA PRIVATE KEY-----";

?>

我的钥匙:

公众:

-----开始公钥------miibijanbgkqhkig9w0baqefaocaq8amiibcgkcaqeatzavrzbqwzzi7wjqa/0m agqlWQfKJhrfnCuytqwNR0rMKk+hGx1c+1YAPSN0ZMDBVYBWJYWZLCHWOKX1VNY gBb3MPXn1QvGkrv+WtXX3VQRsPjWtjaAqLYdjP/m64+pVDr54mt4RzNxi1dQ/PRD 6NJDVHMPFTPV1LTWCL2TZSTP3G2LY4DDVSTUHZO8+3R9PaIle7CnVZ/2qSSb HVN4JUZN3ZSEMJRYKOZLOV3VLSHU2CB3M21TCMWB7BLCHD2YIXEZAMJHAYPVK+ 6ZjQgEN7IYeb4ALOIx50WntOC67S29qpG1MZ84TF/OLTvTfFfm+母线VypPMMSZ qQIDAQAB -----结束公钥-----

私人:

-----开始RSA私钥------MIIEpAIBAAKCAQEAtzAVRzbQWzZi7wjqA/0magqlWQfKJhrfnCuytqwNR0rMKk+h Gx1c+1YAPSN0ZMDBVYBWJYWZLCJWOKX1VNYGB3MPXN1QVGKRV+WtXX3VQRsPjW tjaAqLYdjP/m64+pVDr54mt4RzNxi1dQ/PRD6TNJDVHLMPFTPV1ELTWCL2TZSTP 3G2LY4dDVstuhzO8+3R9PaIle7CnVZ/2qSSbHVN4Juzn3zSemjRykoZLoV3VLsHU 2CB3M21TCMWB7BLCHD2YIXEZAMJHAYPVK+6ZjQgEN7IYeb4ALOIx50WntOC67S 29qpG1MZ84TF/OLTvTfFfm+BUSCVYPPMMSqqidaqabaoiBay/7aYW7Luh98mL O+E1JWP/a+R9+Y374UFTIDM5PAFHCSPLEWKFFSKJDNFZWM3L67GT17A718AMPOC HYT5D1MbTaDugKjvw2S75nbbWuZnEGYIN74eLlo9iwy+7I5Molg7APZPT6Dnson 1AWDJ1ZGWFDCP91KNWBO6K4NJYXIK0xVSVDCNECPNDQ611BUICZ3MFMUOA+axDg 格罗斯7IQVEYYMRU0E2/lZdURJS1uNg+T3KYBS3ZINIBOWNEFSF8V3E90HAWLMJC5MW nNFTo4KWPoHZCWIsyMPZfinjEk/5+DKDFFIQAYYWJNU23QC4ORU4HB+vTFXQt 2FCP2NKGYEA58QY4ZEQHKIPVEWFS/lZDcd/GdwL+/0Dmmm6lUvTQpUG/u0njY9n JOTyvNc+vH3U9FWm3yPKX+HbARC4CMV/x9jU8QIIa0ARcETjh6BQGaEkIReDeXhq X3kwcdSuhqK9nrmp1ocGeIYFGZPrrofJI+1gODCMtdgqt9pbN+8UJXSCGYEALEL rpsFSiAx0bBcZ9kCPHYHpR2kdpcv4iOunpPJLJQ+P0KHCDDDA1J7LFTLNVS1PG34W AD3UNDBH0D/8B1 QNLXVPIDBGOEBNFNKADF0TI1CZNQOBSIZWA56FCU8MQK9DQXJ AHkmEIdHjPtXjM7fEEuz4kRLjcdirV2T5+KZNYSCGYBCIOQASEDQZO7FJPK8BIF wqc7RXIrZvkh3Dk1pA+DJKXZ6YLWABWW6BVL3BRPZT88ZP3DK8KODQOMIQ8YHFP aPG6QFsqb7qSATVSOzTEJv+4gIe+2FOYFZLTF0GARMGX0FJZ+CLue686TtBYLrf FCGKWEYMT4P0RTZRUJ3AQKBGQCF/Rtg6uwMx1X88dCuv/S3r6+ty7ldl39h9Eq+ 0iWwHOtJPzKr2yaNN525h8JQxgnn84tuEvymAHfJR5DW37uMxG/sS/XiYSOADqC+ QM4YMDEW2LTHNRVKU50NAU9LDECSNPJ1TTJLJ7PY1VOC9NS5D6XG+W1fXsnUf VZLERWKBGQCLWKRCQSJKVWBQIE7DGTF5E2EFUUWIWWPODN3UNR7DCRPY7PYBVAD TWrKw+Uu0FmVgEiMWlIWjgse58/ZaBHXzqU5ScsibshJU/tacG+M1uqxAcyr+p03 QKSUQBJ6OQUNOWATREFLXT5BVNWLLIZP9SPGGEIJ6MMDOW9J6WONA== -----结束RSA私钥-----


您在哪里设置$priv?priv.php看起来像什么?$priv是所需priv.php文件中的一个变量。它只包含私钥,我发现由于格式问题,加密的数据没有及时到达php脚本。我使用base64编码/解码解决了这个问题。仍然不能正常工作。您加密的数据大小是多少?另外,如果这只是为了加密传输中的数据,只需使用HTTPS即可。数据大小不大。最多32字节。我可能最终只会使用HTTPS。然而,我仍然很想知道为什么这不起作用。
<?php

if (!isset($allow)){
    header("Location: ../index.php");
    die();
}

$priv = "-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAtzAVRzbQWzZi7wjqA/0magqlWQfKJhrfnCuytqwNR0rMKk+h
Gx1c+1YaPsN0ZMdBVWyBWJYWzlCjWOKx1vnYgBb3MPXn1QvGkrv+WtXX3VQRsPjW
tjaAqLYdjP/m64+pVDr54mt4RzNxi1dQ/PRD6TnjdVhLMpftPv1ELTWCl2tyzSTP
3G2LY4dDVstuhzO8+3R9PaIle7CnVZ/2qSSbHVN4Juzn3zSemjRykoZLoV3VLsHU
2Cb3m21tCMWB7BFlChd2cYiXeZamJHaypvK+6ZjQgEN7IYeb4ALOIx50WntOC67S
29qpG1MZ84TF/OLtVTFWFM+buSCvYpPMMSzSqQIDAQABAoIBAFy/7aYW7Luh98mL
O+E1JWP/a+R9+y374UfTIDM5PafhCSpLEwkFfvSKjdNFZwM3l67Gt17A718amPoC
HYT5D1MbTaDugKjvw2S75nbbWuZnEGYIN74eLlo9iwy+7I5MOLG7ApZPT6DNPSoN
1aWdj1zgwHfDcp91KNwBo6k4NJyxIK0xVSvdcnecpndQ611BUicz3mfMUoa+axDg
GROs7IQvEyYMru0E2/lZdURJS1uNg+T3kyBs3zINibwNEFsf8V3e90haWlMjc5MW
nNFTo4KWPoHZCWIsyMPZfinjEk/5+DKdFFIQAY7YWUhjnu23Qc4oRu4hb+vTFXQt
2FCp2nkCgYEA58QY4zeqhkIPVEWFs/lZDcd/GdwL+/0Dmmm6lUvTQpUG/u0njY9n
JOTyvNc+vH3U9FWm3yPKX+HbARC4CMV/x9jU8QIIa0ARcETjh6BQGaEkIReDeXhq
X3kwcdSuhqK9nrmp1ocGeIYFGZPrrofJI+1gODCMtdgqt9pbN+8UJxsCgYEAylel
rpsFSiAx0bBcZ9kCPHYHpR2kdpcv4iOunpPJLJQ+p0KhCdDA1J7LftlNVS1Pg34W
aD3nundbH0D/8B1qnlXvPIDBGOEbnfnKAdf0ti1cznQoBsIzwa56Fcu8MqK9DQXJ
AHkmEIdHjPtXjM7fEEuz4kRLjcdirV2T5+KZNYsCgYBCioqaseDDqzO7fjpk8bIf
wqc7RXIrZvkh3Dk1pA+DjkXz6yLwAbwbW6BVl3brpzT88Zp3dk8kODQomiQ8YHfP
aPG6QFsqb7qSATVSOzTEJv+4gIe+2FOyFZlTFT0GarMGX0fjz+CLue686TtBYLrf
FcgKWeYMT4P0RTzrUjj3AQKBgQCf/Rtg6uwMx1X88dCuv/S3r6+ty7ldl39h9Eq+
0iWwHOtJPzKr2yaNN525h8JQxgnn84tuEvymAHfJR5DW37uMxG/sS/XiYSOADqC+
Qm4YmdeW2ltHtMhNrVKU50nAU9LdeCSNPj1ttjlJ7PY1vOC9Ns5d6xg+W1fXsnUf
VZlErwKBgQCLWkrCqsxjKvWBQIE7DgtF5e2eFuuwIWwPODn3uNR7DCrpy7PyBVAd
TWrKw+Uu0FmVgEiMWlIWjgse58/ZaBHXzqU5ScsibshJU/tacG+M1uqxAcyr+p03
qkSuqbJ6OqUnOWwATrEFLxt5BVnwLlizp9sPggEIJ6mMdOW9J6wONA==
-----END RSA PRIVATE KEY-----";

?>