我已经实现了一个像这样工作的身份验证系统:
成功登录后,服务器获取客户端的用户名并使用 AES-256 对其进行加密。
这个密文存储在客户端的浏览器中,当客户端想要做一些需要登录的事情时,这个密文被发送到服务器。服务端对密文进行解密,得到登录客户端的用户名。
攻击者无法破坏客户的帐户,因为他/她不知道加密密钥,因此攻击者是否知道用户名并不重要。但是,我担心如果客户端的浏览器被暴露,攻击者将同时访问密文和纯文本(用户名)。鉴于密文和明文都是已知的,这是否允许攻击者“计算”加密密钥?因为该密钥用于所有客户端,所以如果它被暴露,整个系统就会被破坏。