You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:10:27