我有一个Java应用程序,并且有用户使用用户名和密码连接到它。 我正在使用Amazon服务进行托管以及应用程序中的其他内容。
我想打个电话从第三方服务获取一些数据,我需要用户为其输入API密钥。 每个用户都有自己的API密钥。
我不希望用户每次都输入API KEY。
我不想按原样在数据库中存储API KEY,因此我尝试通过Google搜索它,但是没有找到任何专业的解决方案。
除了使用某种算法对API密钥进行加密和解密外,您还有其他想法吗?
答案 0 :(得分:0)
如果您想将API密钥存储在数据库表中,那么除了保护数据之外,没有别的选择。但是,有另一种方法不涉及将密钥存储在数据库中。相反,您可以使用JWT用户令牌。使用JWT,当用户登录或需要进行身份验证时,您也可以提示他们输入API密钥。然后,您将向用户颁发令牌,该令牌在Claims部分中包含API密钥。只要用户希望通过调用API来接近您的服务,就会传递JWT,服务器可以提取API密钥。
在JWT方法下,API密钥将仅与每个用户一起存储,并且将不存储在您的数据库或系统中的其他地方,至少不会长期存储容量。