web端登录时对密码进行RSA加密传输的处理。
准备:
1.需要一对RSA秘钥
2.需要jsencrypt.js进行加密,下载地址:https://unpkg.com/jsencrypt
公钥放在前端,私钥放在后台。
公钥:
—–BEGIN PUBLIC KEY—–MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDqri0Zj/ufDV5hxJ5MwyYYqpYg
NFLAOZUc0RXWFU5087UXvsJJWRtt4WsdlS8QraAa5USmR6f2gtXfRggxFSHyZBjv
Mv6qDPbCYxwP1/kwSHbt4HmIVjgscVjz1zcl5639KoB5lGnblCruDKsiISwaLkEY
AkBl40Hn+coq/AHmDwIDAQAB
—–END PUBLIC KEY—–
私钥:
—–BEGIN PRIVATE KEY—–MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOquLRmP+58NXmHE
nkzDJhiqliA0UsA5lRzRFdYVTnTztRe+wklZG23hax2VLxCtoBrlRKZHp/aC1d9G
CDEVIfJkGO8y/qoM9sJjHA/X+TBIdu3geYhWOCxxWPPXNyXnrf0qgHmUaduUKu4M
qyIhLBouQRgCQGXjQef5yir8AeYPAgMBAAECgYBdXF1kxfr8E31wt5+iOiB1v6dp
uGcTQdUoWaWuPVuw+yMYBzOTqndXB05tvmOy5t/C02K0I92WHAaphFrN6/JMkJPO
OzZCB2mEz7gzmKmmw9coJZWHqdDDqdBuYfAYchIZq/evmUjZUvDfoIQ5pXSU0ya/bPzh0Y4ZBTb8nl88QQJBAP2Duuc6YJ9fi/wyEpRTaDthq4zHY4imbdxGtfwILWDj
9UA5uXGWhGHBvwOWXJZYJe6X4qFnqW4jcjv1QdJa5v0CQQDs+y0UL8XMXiR65T5g
CCJAylwz06JBqh7IZ2PF/U1/iZTvNjg7aGf4QtNF/9sMiMH6a/3OOhLNGQO7APXV
4Nz7AkAXRn3ldt2iJEKU7//2sEW0lf4LGc9Qn38cpz1UG2gXKja9I8+b1ybmVsRz
zt1HTGaHJli/WuYaX5TAXn8hkgj9AkAEPOmtdr0+zmAwonDfHsYeCoBjnOFF81jh
lJfALqt4IGm9bWbMCS3yzp8gnVa5fqiZZd0AFyHG8S+T5IyA6qiJAkEAtKoAFm2U
rT3axpWynQIow+vX5kNslzhE65EeP3OsW6OwL2ME0tan7orGb8942pPDkTFlM9AU
dNCMqKR6tS2UEg==
—–END PRIVATE KEY—–
前端处理:
用户在点击登录的时候对密码进行处理。
在提交之前调用encryptPwd函数,使用JSEncrypt函数公钥进行加密。
functionencryptPwd() {var ipwd = $(“#inputPwd”).val();var encrypt = newJSEncrypt();
encrypt.setPublicKey(public_key);
$(“input[name=’password’]”).val(encrypt.encrypt(ipwd));
$(“#inputPwd”).val(“”);
};
此时用户登录时,传输的密码就是处于加密状态。
后台在接收到pwd加密后的密码时,使用私钥对pwd密码进行解密,然后在根据自己的密码加密算法进行配对。判断用户密码是否正确。
密码加密传输完成。