使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置

Posted

技术标签:

【中文标题】使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置【英文标题】:Use qrencode to generate png/svg QR code for Wireguard client configuration 【发布时间】:2021-09-07 13:42:34 【问题描述】:

我希望在 php 网页上生成二维码。用户从提交表单的页面开始,唯一的输入是新客户的名称。此页面是 *** 客户端的管理器。

重定向后,PHP在页面上生成配置文件进行复制粘贴。用户必须在他们的etc 目录中将此文件保存为wg.conf。我一直在尝试使用qrencode,这是一个基于 Linux 的命令行工具,可以使用配置文件在同一页面上生成 QR 码。根据qrencode 上的文档,您可以将文件另存为.png.svg

我一直在玩它,既尝试通过 URL 作为重定向中的 GET 参数传递数据(唯一的问题是 QR 码很敏感),又使用反引号运算符运行 bash 命令将其保存为用户本地文件中的一个文件。我似乎无法弄清楚将其保存为文件的位置,或者是否有其他解决方案可以在网页上显示它。

【问题讨论】:

【参考方案1】:

我会怎么做:

    检查这个库https://github.com/neocotic/qrious,你需要做的就是在你的页面上加载js

    在文本区域、div 或其他 html 元素中生成要转换为二维码的文本并为其分配 id

    使用该id通过纯JS提取数据,现在您有一个文本变量,您现在可以使二维码动态化

    一旦您通过 JS 动态提取数据,您就可以使用该变量生成如下所示的二维码:

var x = 'sample text'
var qr = window.qr = new QRious(
  element: document.getElementById('qrious'),
  size: 200,
  value: x
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrious/4.0.2/qrious.min.js"></script>
<canvas id="qrious">

【讨论】:

以上是关于使用 qrencode 生成 png/svg 二维码,用于 Wireguard 客户端配置的主要内容,如果未能解决你的问题,请参考以下文章

c++ 记一次把qrencode源码生成动态库的尝试

qt生成二维码

C#中二维码生成 使用Gma.QrCodeNet.Encoding类库却无法使用Renderer类?

C#中二维码生成 使用Gma.QrCodeNet.Encoding类库却无法使用Renderer类?

centos 6 SSH配置Google Authentication 验证

使用libqrencode库制作二维码电子名片--IOS版