有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是存储api密钥最健壮的方法(客户端)?

我创建了一个java守护程序,可以从社交网络帐户收集数据。我使用了很多服务,包括Flick、S3、地理编码等。目前,我已经设置了从属性文件读取所有这些API密钥的程序。我的测试文件夹中还有一个格式类似的属性文件,其中包含用于测试的不同密钥。这些属性文件显然没有提交到源代码。此收集程序写入mongo db。我还在开发一个网络应用程序,它也可以与mongo一起使用,并将与该系列一起部署。在我的开发过程中,我读到最好将密钥作为环境变量存储在生产端。它让我思考;这就引出了我的问题

我想知道在我的java程序中是否有更好的方法来处理这些键(从部署的角度来看),或者人们在做类似事情时尝试过的一些可能的途径。有人能解释一下吗


共 (2) 个答案

  1. # 1 楼答案

    我推荐一个数据库。如果只存储供个人使用的API密钥,那么数据库的大小可能不是主要问题。我个人建议使用MySQL(或者SQLite),因为它们都得到了很好的支持

    如果你加密了你的密钥,那么你把数据库存储在哪里就不重要了,当然我还是不会让它公开下载。只要选择一个好的加密工具,不要尝试开发自己的加密算法

  2. # 2 楼答案

    最新的热点(在容器的世界中)是使用zookeeperetcdconsul作为分布式配置存储。confd工具能够确保应用程序配置文件与配置更改保持同步

    我个人的偏好是consol,它有一个类似的模板工具叫做consul-template,如果你希望你的程序使用环境变量,它还有一个叫做envconsul

    最后,Concur的制造商Hasicorp推出了一款名为vault的加密产品。它与领事合作良好,也得到了consul-template的支持