如何在没有依赖的情况下用 Python 生成 WireGuard 密钥(私钥和公钥)

以下代码允许你在不安装任何 Python 库的情况下生成 WireGuard 私钥和公钥。

generate_wireguard_keys.py
import subprocess

def generate_wireguard_keys():
    """
    生成 WireGuard 私钥和公钥
    要求 'wg' 命令在 PATH 上可用
    返回 (private_key, public_key),均为字符串
    """
    privkey = subprocess.check_output("wg genkey", shell=True).decode("utf-8").strip()
    pubkey = subprocess.check_output(f"echo '{privkey}' | wg pubkey", shell=True).decode("utf-8").strip()
    return (privkey, pubkey)

使用示例:

generate_wireguard_example.py
print(generate_wireguard_keys())

输出:

generate_wireguard_output.txt
('KIm+ZlY86I+cInG4FWZpKmhADUnxrqhdtQ5UzaFbuVs=', 'ctX9oUw+CkRe7GfSmUHAB9JjLfQWALOs0gXU9Ikhg1g=')

Check out similar posts by category: Networking, Python