如何在 Windows 10 上将 Base64 加密密钥设置为环境(系统)变量

如何在 Windows 10 上将 Base64 加密密钥设置为环境(系统)变量

我有一个使用 .json 文件中的多个凭据连接到 BigQuery 的应用程序。由于此应用程序最终将驻留在 Pivotal Cloud Foundry 上,并且需要将其设置为用户提供的环境变量,因此我使用 base64 加密将 .json 文件的内容编码为 base64 密钥。

我的想法是,我可以使用键作为环境变量的值,这样我就可以将 .json 文件中的所有 BigQuery API 连接信息拉到一个环境变量中 - 使用 base64 键,而不是使用许多 key=value 对变量来实现这一点。

注意:base64 密钥有 3,165 个字符 - 包括换行符。

作为参考,base64 密钥的简短片段如下:

nROdXlnWnVmb1k0UnVqTFJlcjgrckZJRlpZdVxuYUFsMklsWk9MUjd3cmRzL0RDZytYdGJGYUp4MzlRaWZHaEp6b2hyblNvbUpyY3ExL2d4aVFYYlplUUtCZ0hja1xua0hqL1M0Wkk0d0dWTzJreEN4QzduYnB1STVQRTRWczRHMjE0RkpldnhPR1hDQ3phOFB5bGJPbm5KUFdZZUJoT1xuV3IwMzduazd5eXpja0p6cE\
p0R0hlNkZLNFJNcHFIRHBmU0pMOE80T2YwWi9UYUZ3ZTM4bE9XbWc1Q2NLUC9XUVxuUjhYdlgzS25UZXRQUWxVeXJwK1BNVHNNdG4yVnBad1hMZDNJTExKYkFvR0JBS1FaODdVbEE1S0kwV3JqVnRic1xuaXJ6UkdDaGhVWE90SXVDT09zWlQyOXNpeFVoQmZka1JzTFpCcnB6VkVWektXeGhBY05lRERRbTJkVzBta09\
1elxuTkNVUlBpbGZYT0pLRkdNQ2lOdkIyZW5OMDVBK2ExdVdOWFFkclQzRG10OG5MS3FFYnp6VTNheXIweWVsc0tKeVxuNE9BVExMK3M5M29oRFV6WEhRZlVtbnNMXG4tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tXG4iLAogICJjbGllbnRfZW1haWwiOiAidG1wLWFkLWxvY2tvdXRAaW8xLWRhdGFsYWtlLXZpZXdz\

我知道可以在 macOS 上将其设置为系统变量(我已经看到它并且应用程序建立连接并正常工作)但我无法在 Windows 10 上执行此操作。

我知道 Windows 上系统变量的最大长度限制,但还没有找到解决方案,能够使用“GOOGLE_JSON_B64”作为环境变量名称,然后将 3,165 键作为环境变量值来设置它。

有人有解决方法吗?

任何见解都将不胜感激。

答案1

微软的文档说,Windows 上的环境变量仅限于 32,767 个字符(关联)它没有说明如何创建一个非常长的变量。

这里的问题是 Windows 提供的工具都有其局限性:

设置命令setx 命令 将值截断为 1023 个字符。

可以在注册表中直接设置环境变量 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment,但是使用 regedit 进行此操作将会失败,因为通过键盘输入的字符串限制为 2047 个字符。

据我所知,剩下的唯一选择是编写一个直接更新注册表的小程序。要使用的 Windows API 函数是 设置环境变量,其文档指出:

用户定义的环境变量的最大大小为 32,767 个字符。

希望这至少是正确的。您可能会遇到编译器接受的最大行长度,但在程序中您可以分步构建如此长的字符串。

相关内容