近日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登陸的朋友有幫助。code