FormData.set()修改加密密码后提交至服务器仍为明文的问题求助
FormData.set()修改加密密码后提交至服务器仍为明文的问题求助
各位大佬好,我最近在做用户登录时的密码加密提交功能,遇到了一个特别困惑的问题:明明在前端用FormData.set()把明文密码替换成了加密后的字符串,控制台打印也显示修改成功,但服务器那边收到的还是原始的明文密码,实在搞不懂哪里出问题了,麻烦帮忙看看!
我的代码如下:
HTML 表单部分
<form method="post" onsubmit="usernamePasswordLogin(event);"> <!-- 表单包含用户名、密码等字段,示例结构: <input type="text" name="username"> <input type="password" name="password"> <button type="submit">登录</button> --> </form>
加密并修改FormData的JS函数
function usernamePasswordLogin(x) { var formData = new FormData(x.target); var formDataEntries = formData.entries() var formDataEntry = formDataEntries.next() var pair; while (!formDataEntry.done) { pair = formDataEntry.value; if (pair[0] === 'password') { var encrypt = new JSEncrypt() encrypt.setKey(publicKey) var encrypted = encrypt.encrypt(pair[1]) formData.set(pair[0], encrypted) console.log('formdata', formData.get(pair[0])) // 这里打印的是加密后的密码 break; } formDataEntry = formDataEntries.next(); } }
控制台输出的加密后密码示例:
YWFHmy9Da5x7XSKnF0jhgIrJbJF/eWo193VJIsYqcGbRh5gLVyL6U+ZGxiphOYSXVgXMQ0041c+IaLRvguwBXiwYm5pKE7xCFamdiwAzRA0YCzdIN9Rh/0rKq6G/QAAEbetdlgeDGnS8+hYo8eDJKZWhroNqku8vTxVT8+YiAcM=
明明控制台显示FormData里的password字段已经是加密后的内容了,但服务器端接收到的还是原始的明文密码,这到底是哪里出问题了呀?
备注:内容来源于stack exchange,提问作者djy
相关产品推荐
相关产品推荐

