前端能用非对称加密直接加密用户密码吗?

W″树果 阅读 2

我在做一个登录功能,想在前端用非对称加密把用户密码加密后再传给后端。但查资料发现大部分都说前端不适合做加密,可我不太理解为什么——既然有 RSA 这种算法,为啥不能直接用呢?

我试过用 crypto.subtle 生成密钥对,但公钥怎么安全地给前端用?如果公钥是写死在代码里的,那不就等于没加密吗?而且每次刷新页面密钥都会变,根本没法和后端配合。

比如这段代码:

const keyPair = await crypto.subtle.generateKey(
  { name: 'RSA-OAEP', modulusLength: 2048, publicExponent: new Uint8Array([1, 0, 1]), hash: 'SHA-256' },
  true,
  ['encrypt', 'decrypt']
);

这样生成的公钥根本没法复用,后端也没法解密。到底该怎么做才对?

我来解答 赞 0 收藏
二维码
手机扫码查看
暂无解答

暂无解答