前端php解密,转发:RSA实现JS前端加密,PHP后端解密
web前端,用戶注冊與登錄,不能直接以明文形式提交用戶密碼,容易被截獲,這時就引入RSA。
前端加密
需引入4個JS擴展文件,jsbn.js、prng4.js、rng.js和rsa.js。
RSA Login Test 用戶名:密 碼:前端代碼十分簡單,只有短短的幾行,下面分別解釋具體的含義:
1.new一個RSAKey對象,
2.定義modulus(模數),我們可以根據私鑰計算出該值(十六進制),具體指令: rsa?-in rsa_private_key.pem?-noout?-modulus
3.定義exponent,此值在openssl生成秘鑰時,輸出,一般情況下e的取值是一個定值10001(十六進制)
4.設置公鑰
5.加密數據
至此,我們就完成了前端的公鑰加密。
后端解密
//私鑰
$private_key = "-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDICrXl+ELhqFE0xCGA3/xdN1VxwUc5kxAKb5f3F28HY40zdXbn
uwpdQNKnHwTNvHZupBRHlYpqX+1Plti81sRadtYKNwVoLRlwwP3mzIyRRvO0hf3c
VXn33r4A5y1YUh+txvfgikbmmnsjP4pP3CIZC0TeDMt1+h17cV6s6KDdOQIDAQAB
AoGAdu2/NQkDIkvCc7+DN65yyCyklOvW34jqSXoM++8nqFnsUcKtPZn60HRAiPEt
Fu/L7X2JPQHP9+wuF1pUYvjAZQb5E9n8G12nxduBS5Ux085INOWP69pXnsljhyip
mpRgPf7ZsgGlftVXlg+HrUfzxj26NqEKwn61mi+CjMSMt/ECQQDpg868PEiJED/g
pUMTT7gRgDAdmPJ0+ALn82zsfA84zDA8Po9EREfXRM2Mar/fuvXL/vc0FBRYGaA/
VAinKJ6tAkEA203JDovTnfG87zNl9z0/z3kUxCMRy+7M28+7btF1eaDzxJWVFWtX
cv4EjHjDN6ClhT6ATuamw0sNlta9n4cGPQJASBltXItUbhV5U5hTNIQ5thWZRZoy
ylDFPO7ZI89ON+A7yG4ceByI/ft9Z6ySH7cvK1RG6WqFuYn4A3Wj0lDlZQJBAIjr
Pq0TRbLl25ToXTAIkI9jREDUuGa/mC1gu+ALbDHc+HTzAxpVY0rLJ2Hgf9l6Nf1D
sW4ReWqSsFBNkCRKc+0CQClxcPv2wwSGMFhLTqpKeySPIeVy4NrTHv8zEYvm7MuU
Gvlsj6sqvcuUQbVHoLRpqQiDi8TPaEMHzS9fhDjVUUc=
-----END RSA PRIVATE KEY-----"; $hex_encrypt_data = trim($_POST['password']); //十六進制數據 $encrypt_data = pack("H*", $hex_encrypt_data); //對十六進制數據進行轉換 openssl_private_decrypt($encrypt_data, $decrypt_data, $private_key); //解密數據 echo '解密后的數據:' . $decrypt_data;
openssl操作截圖:
需要注意的是:前端加密的時候如果是中文,則解密后是亂碼。
openssl工具和完整demo,詳見:https://github.com/cqingt/RSA_JS_PHP
總結
以上是生活随笔為你收集整理的前端php解密,转发:RSA实现JS前端加密,PHP后端解密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北汽E130.汽车助力泵加什么液力传动油
- 下一篇: 吃新疆撸串时,你还吃什么?