近日BD登录改版,密码通过JS用Rsa算法加密提交,由于需要模拟登录BD,所以不得不去仔细研究Rsa算法。 经过研究发现,BD的Rsa相当的Low. 不多说,直接上PHP实现的模拟百度JS实现的Rsa加密。

$pubkey = file_get_contents("public.pem"); 
//echo $pubkey . "<br>";
$pwd = $_POST['pwd']; //密码明文
//echo $pwd . "<br>";
$pubkeyObj = openssl_get_publickey($pubkey); //openssl 读取并解析公钥
//var_dump($pubkeyObj);
openssl_public_encrypt($pwd, $encrypt_pwd, $pubkeyObj, OPENSSL_PKCS1_PADDING); //加密
//var_dump($encrypt_pwd);
$encrypt_pwd = base64_encode(''.$encrypt_pwd);
echo $encrypt_pwd; //加密后的密码

其中public.pem是公钥文件,内容如下:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnn8lJNWp9At07NnRhKruMz+Xk
khVIlS0LhrSu3JiKdxGRbG//hP3Vcgj8Yu+qlTyofK+1PiUvDATgbV6a8IiO1zhJ
/9dL/xLpH81q4drll2NauXGD7UztRV4MQE1Mi2E57STyK4AevxV5iCAPwuHNZ3os
mJ7Dr6WcsovXSvdspwIDAQAB
-----END PUBLIC KEY-----

希望对做BD登录的朋友有帮助。


HarveyCheng
96 声望1 粉丝

理想与现实之间,还差一套房子!