您可以使用预共享密钥(也称为共享密钥或 PSK)向对等方 VPN 网关验证 Cloud VPN 隧道的身份。出于安全方面的考虑,建议您生成一个 32 个字符组成的安全系数高的预共享密钥。
如需详细了解 Cloud VPN,请参阅 Cloud VPN 概览。
如需了解本页面中所用术语的定义,请参阅关键术语。
为您生成
您的浏览器使用本页面末尾的 JavaScript 代码段生成以下随机字符串。它是 Crypto.getRandomValues
中的 24 个字节,采用 base64 编码创建一个 32 个字符的预共享密钥。
使用此代码段,私键可以安全地保留在浏览器中。如果要在自己的系统上生成此私键,请使用下一部分中列出的生成方法之一。
如需生成新的随机预共享密钥,请点击重新生成按钮。
生成方法
使用以下方法生成 32 个字符的安全系数高的预共享密钥。
OpenSSL
在 Linux 或 macOS 系统上,运行以下 OpenSSL 命令:
openssl rand -base64 24
/dev/urandom
在 Linux 或 macOS 系统上,您还可以使用 /dev/urandom
作为伪随机源来生成预共享键:
在 Linux 或 macOS 上,将随机输入发送到
base64
:head -c 24 /dev/urandom | base64
通过哈希函数(例如
sha256
)传递随机输入:在 Linux 上:
head -c 4096 /dev/urandom | sha256sum | cut -b1-32
在 macOS 上:
head -c 4096 /dev/urandom | openssl sha256 | cut -b1-32
JavaScript
您可通过 W3C Web Cryptography API,使用 JavaScript 直接在文档中生成预共享密钥。此 API 使用 Crypto.getRandomValues() 方法,可提供以加密方式生成预共享密钥的方法。
以下代码将创建一个包含 24 个随机字节的数组,然后对这些字节进行 base64 编码以生成 32 个字符的随机字符串:
var a = new Uint8Array(24); window.crypto.getRandomValues(a); console.log(btoa(String.fromCharCode.apply(null, a)));