问题标签 [tlv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
995 浏览

php - 如何在 PHP 中将 Base64 解码为 TLV

我正在为我的公司构建内部发票解决方案。政府要求我们创建以标签长度值 (TLV) 格式编码的二维码字段。

TLV 编码应如下:

标签:上面提到的标签值存储在一个字节中

长度:字段值的UTF8编码产生的字节数组的长度。长度应存储在一个字节中。

值:由字段值的 UTF8 编码产生的字节数组。

在示例中,他们提供了这个 Base64 输出

当我使用解码时

我得到的回应是:

标签 1:卖家名称

标签 2:增值税注册号

标签 3:发票的时间戳

标签 4:发票总额

标签 5:税收总额

标记 6:XML 发票的哈希

标签 7:ECDSA 签名

标签 8:ECDSA 公钥

标签 9:加密邮票公钥的 ECDSA 签名

我在这里做错了什么以及纠正它的正确语法是什么?

0 投票
0 回答
22 浏览

smpp - 如何使用 https://github.com/farhadi/node-smpp 接收 message_payload?

我们正在使用node-smpp并努力从 SMPP 服务器接收长(超过 160 个字符)消息。有谁知道我们是否应该启用某些选项来获取此消息有效负载?

0 投票
4 回答
5315 浏览

php - 如何在 PHP 中创建和解析标签、长度、值 (TLV) 并在 Base64 中编码

政府有一项新规定,要求所有增值税注册公司在新的电子发票中实施二维码。

  • 二维码字段应以标签长度值(TLV)格式编码,标签值在相邻表的“标签”列中指定。

  • TLV 编码应如下:

    • 标记:上面提到的标记值存储在一个字节中。
    • 长度:字段值的UTF8编码产生的字节数组的长度。长度应存储在一个字节中。
    • 值:由字段值的 UTF8 编码产生的字节数组。

如何从信息数组创建 TLV?有我可以使用的图书馆吗?

0 投票
0 回答
88 浏览

python - python:将数据包中的 TLV 值打印为字符串

我正在通过netlink套接字读取数据。其中一个TLVs包含 IPv4 地址作为 4 个字节的序列,例如0x01 0x02 0x03 0x0b对于 address 1.2.3.11

我需要以rta_data[:4]这样的方式阅读,以便得到一个可以进一步传递的字符串。我尝试使用encode()decode()字符串方法,但没有运气。我想我应该遍历rta_data并将每个字节转换为字符串并在其间放置点?我想知道是否有一个单行。

0 投票
1 回答
75 浏览

python - 如何解析嵌套的 TLV 结构

这是TLV代码:</p>

在此处输入图像描述

从这个图中,我们可以知道如何判断一个TLV结构是否嵌套。那么,如何解析嵌套的TLV结构。</p>

0 投票
0 回答
235 浏览

javascript - 从 Javascript 中的特定规范生成 QR 码

我在 ElectronJS 应用程序中工作,该应用程序根据客户给出的特定要求生成 QR 码,

  • 必须生成和打印以 Base64 格式编码的二维码,最多 500 个字符。
  • QR 码字段应以标签长度值(TLV)格式编码,标签值在相邻表的“标签”列中指定。
  • TLV 编码应如下:
    • 标记:上面提到的标记值存储在一个字节中。
    • 对于标签 1 到 5: - 长度:由字段值的 UTF8 编码产生的字节数组的长度。长度应存储在一个字节中。- 值:由字段值的 UTF8 编码产生的字节数组。
    • 对于标签 6:
      • 长度:散列长度(SHA256)为32字节
      • value:构成每个字段值的字节数组

标签如下:

  1. 姓名

  2. 地址

  3. 年龄

  4. 薪水

  5. 年税百分比

  6. XML工资报告的哈希(我还没有在代码中实现这个)

我开始在 nodeJS 中进行实验,因为在 nodeJS 中使用 Buffer 模块将使字符串转换为十六进制值非常容易。

这是 TLV 的正确实施......?仅使用 Buffer 模块将字符串打包成十六进制,然后将所有这些部分连接在一起?

0 投票
1 回答
1589 浏览

javascript - 如何在 JavaScript 或 java 中创建和解析标签、长度、值 (TLV) 并在 Base64 中编码

QR 码字段应以标签长度值 (TLV) 格式编码,标签值在下图中相邻表格的“标签”列中指定。

TLV 编码应如下:

标记:上面提到的标记值存储在一个字节中长度:由字段值的UTF8编码产生的字节数组的长度。长度应存储在一个字节中。值:由字段值的 UTF8 编码产生的字节数组。

这张图片描述了我的问题:

0 投票
0 回答
240 浏览

delphi - Delphi TLV 编码

我正在尝试制作 TLV 编码格式。我设法做到了流动:

我想我现在需要的只是连接所有 3 个值来创建 TLV,但是如何将十六进制字符串(不超过 'ff')转换为一个TBytes数组?

0 投票
1 回答
1074 浏览

.net - 如何在 .Net 中创建和解析标签、长度、值 (TLV) 并在 Base64 中对其进行编码

二维码字段应以标签长度值(TLV)格式编码,标签值在相邻表的“标签”列中指定。

TLV 编码应如下:

标记:上面提到的标记值存储在一个字节中。长度:字段值的UTF8编码产生的字节数组的长度。长度应存储在一个字节中。值:由字段值的 UTF8 编码产生的字节数组。

寻找 Asp.net/Vb.net

提前致谢

0 投票
0 回答
64 浏览

c# - 如何使用 TLV QR 码的 Base64Encoding 将代码从 NodeJS 转换为 C#?

我有下面的NodeJS代码:

回应是:AQtOYW1lMSBOYW1lMg==

我想用 C# 语言转换上面的相同实现。

我尝试了下面用 C# 编写的一个函数,结果与 NodeJS 响应不同。

C# 的响应是: MTExTmFtZTEgTmFtZTI=

那是差异。比 NodeJS 响应。

有没有一种简单的方法可以在 C# 中应用相同的实现?