我正在创建一个asp.net API,我打算使用HMAC身份验证来验证传入的请求。
每个用户都有公钥和密钥。密钥用于在查询字符串中添加名为签名的查询字符串和公钥中的公钥的加密值。
当用户发出请求时,我正在使用我从服务器端的数据库获取的密钥加密查询字符串中提供的公钥。
如果查询字符串中提供的签名与我的加密字符串匹配,那么我允许用户访问API,否则我发送未经授权的请求错误。
但是我的问题是在使用jQuery调用Web API方法时,密钥在客户端可见,因为我使用CryptoJS来加密公钥。
所以我必须将加密逻辑移到服务器端。在客户端JavaScript上避免使用密钥的最佳方法是什么?