php selesium,非对称加密提交表单到PHP
非对称加密提交表单到PHP
首先用openssl工具生成一对RSA非对称密钥
openssl genrsa -out rsa_1024_priv.pem 1024
openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem
然后在前端引入jsencrypt库,用于非对称加密,再绑定submit的onclick事件,对表单需加密数据进行加密处理
Title
username:
password:
var form_ele = document.getElementById('form');
var password_ele = form_ele.querySelector('[name=password]');
var submit_ele = form_ele.querySelector('[type=submit]');
submit_ele.onclick = function (e) {
var password = password_ele.value;
var encrypt = new JSEncrypt();
var publickey = '-----BEGIN PUBLIC KEY-----\
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7xzfMsVgFc/q1wUQ7vAUU7CD8\
W5eq0PnJb0Hv7Py1GQ+qYaqiasOqOr6T2FizbzSbXd+ZirEiZVdtFX9nKK4OlVHR\
zDSGulioUESLUuNQau0BeWFsEwxCMIMkAMM1fI5zDMp1PvxULdC5hFTLDXNCf5DY\
Yl4Xkc1LNsa4XYQV1QIDAQAB\
-----END PUBLIC KEY-----';
encrypt.setPublicKey(publickey);
password = encrypt.encrypt(password);
password_ele.value = password;
form_ele.submit();
return false;
}
然后就可以在后端PHP中通过openssl_private_decrypt方法解析传输过来的加密数据了
$privatekey = '-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC7xzfMsVgFc/q1wUQ7vAUU7CD8W5eq0PnJb0Hv7Py1GQ+qYaqi
asOqOr6T2FizbzSbXd+ZirEiZVdtFX9nKK4OlVHRzDSGulioUESLUuNQau0BeWFs
EwxCMIMkAMM1fI5zDMp1PvxULdC5hFTLDXNCf5DYYl4Xkc1LNsa4XYQV1QIDAQAB
AoGARRGwGqCYydixPS2LlZVBIUMBlxFxpikb19YOoNvA0DQZqQgnpXoz4medNfB8
H/Qlm4hZ+LYlFYvFLqCbriwuaRl3utzULP6XxVjI8NlLbbg+sXquDAJVtiIFVpBs
VNbvBFFMG9kwM0UnfRTcLDVu5kPH8PSpkuEF6BKRS2oyXcECQQDgteyUuDvMejIR
sYHf+GDOhtY6Ncy25cEgk07xSNz84uRhMBe2lVI9rTEmE2lSVSBBfsdKwums2VOK
bj8uJQYJAkEA1ezLEKCdOWN8VZLe8jQIGoPX7kYqIo1BiaUa+8eER/tMZlCsXDPQ
wRBfRBiiDGO9KAWR8i0vRMGTYAnol31kbQJAN1DxdUbJCbQHAU4GH6FgC1csA1Zd
F6UFXsSEiWcbZ3FfMQGKxNqLTT2GPM5IfgkQkK7p1mCW74LsSsaK7QwWKQJAHJ+n
eB0VjHU8ULLrM9s0bl/Px6kJwD/IUiOOXbwPfhYo3dPTjC6+suZ+6LynCiNaTv2X
zqCvH3MLRiFtRr/XbQJBANDOugkjgfTQKt2yHWEPMp+pNeRyPIycuHQq+ejoTp+G
y0SXaEGYTNdLpZ4D1mCVea/4qnhlnW8ir7KEC6ecI0I=
-----END RSA PRIVATE KEY-----';
if (openssl_private_decrypt(base64_decode($_POST['password']), $decrypted, $privatekey)) {
echo $decrypted . "\n";
} else {
echo 'error';
}
php selesium,非对称加密提交表单到PHP相关推荐
- php ajax 重复提交,ThinkPHP防止重复提交表单的方法实例分析
本文实例总结分析了ThinkPHP防止重复提交表单的方法.分享给大家供大家参考,具体如下: 为什么会有表单重复的坑 在开发中,如果一个新增或修改的表单,在后台完成数据库操作后我们设定的不是跳转到其他页 ...
- python自动登录并提交表单_用python模拟登录(解析cookie + 解析html + 表单提交 + 验证码识别 + excel读写 + 发送邮件)...
老婆大人每个月都要上一个网站上去查数据,然后做报表. 为了减轻老婆大人的工作压力,所以我决定做个小程序,减轻我老婆的工作量. 准备工作 1.tesseract-ocr 这个工具用来识别验证码,非常好用 ...
- 提交表单自动刷新_Web自动化测试:元素的基础操作和浏览器基础操作
上一节,我们了解了如何定位元素,其实也有涉及对于元素的操作,这一节我们就详细的介绍一下对于元素的操作和对于浏览器的一些操作 一.对于元素的基础操作: clear():清除输入框内的文本 send_ke ...
- php表单退出怎么写,PHP提交表单失败后如何保留填写的信息
[导读]本文章来给各位同学介绍PHP提交表单失败后如何保留填写的信息一些方法总结,最常用的就是使用缓存方式了,这种方法如果网速慢是可能出问题的,最好的办法就是使用ajax了.1.使用header头设置 ...
- JQ+ajax 提交表单不跳转页面
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 代码 <div class="apply_box"><h1>合作申 ...
- VIEW层AJAX提交表单到Controller的实体(AJAX传递序列化的输入元素)
在MVC环境中,AJAX方式添加一个对象,这个对象在Models中是一个视图模型,在前台显示时是这样的代码: <%using (Html.BeginForm()) { %> ...
- php ajax弹出框传值,PHP_Yii2.0 模态弹出框+ajax提交表单,如题 我们使用模态弹出框+ajax - phpStudy...
Yii2.0 模态弹出框+ajax提交表单 如题 我们使用模态弹出框+ajax提交表单 首先我们把index视图的create按钮添加data-toggle 和 data-target. 代码如下: ...
- html提交表单到Servlet
源码地址 https://github.com/YouXianMing/Java-Web-Study/tree/master/Servlet-Form 演示效果(注意post与get提交方式浏览器地址 ...
- java jquery提交表单_Jquery ajax提交表单几种方法
在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$('#表单ID').serialize();就行了,下面我来介绍两个提交表单数据的方法. ...
最新文章
- redis 代理工具Predixy安装部署
- 在合并单元格中数组公式无效_Excel中合并单元格困扰多年的难题,终于被我搞定了...
- 在虚拟主机中无法实现缩放等交互
- PHP基本连接数据库
- 【BZOJ4873】[六省联考2017]寿司餐厅(网络流)
- HTML5 新增内容
- linux e514写入错误,Linux上使用vim编辑文件保存时报错:E514: write error (file system full?)...
- 个人学习进度条------第二周
- matplotlib之plot,figure(笔记一)
- Python sysos模块
- 面向对象——抽象基类
- Linux之判断socket是否断开
- 群晖消息通知 推送服务器,群晖resync服务器
- Sea Battle<海战>(思路题)
- PHP内置函数parse_str会自动进行urldecode(URL解码)
- oracle怎么同步时间设置,【oracle数据库获取当前时间】
- mysql日期格式转换_MySQL日期格式转换
- pvs、pvdisplay、pvscan 查看物理卷信息
- 【TSP】基于matlab GUI免疫算法结合蚁群算法求解旅行商问题【含Matlab源码 1910期】
- 苹果笔记本适合什么人 中国Mac电脑用户的8个事实