- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在搜索这个主题一段时间,但没有找到任何相关答案。所以想把它放在“Stackoverflow”上......
我们正在尝试对字符串进行编码以便通过 TCP/IP 连接传递它。由于 ASN.1 是最流行的一种,所以我们正在尝试各种规则 BER、DER、PER 等,以找出我们可以使用哪一种。我们的应用程序是一个基于 .net 的应用程序,我正在寻找可以执行此操作的免费库。
奇怪的是我找不到任何免费的库。所以,我开始寻找 .Net 框架本身。我发现只有一个“BERConverter”。所以,我用它做了一个小例子。以字符串为例
string str = "The BER format specifies a self-describing and self-delimiting format for encoding ASN.1 data structures. Each data element is encoded as a type identifier, a length description, the actual data elements, and, where necessary, an end-of-content marker. These types of encodings are commonly called type-length-value or TLV encodings. This format allows a receiver to decode the ASN.1 information from an incomplete stream, without requiring any pre-knowledge of the size, content, or semantic meaning of the data"
在 UTF-8 或 ASCII 中,它显示为 512 字节。我使用以下代码使用 BER 对其进行编码
public static byte[] BerConvert(byte[] inputbytes)
{
byte[] output = BerConverter.Encode("{o}", inputbytes);
return output;
}
我得到一个大小为 522 的字节数组。在其他一些情况下,我发现与原始文本相比字节大小增加了。我认为编码会减小尺寸。为什么会这样?
除了 BER 之外,是否还有其他编码规则(如 PER 或 DER)可用于减少编码大小?是否有任何示例、库或支持有助于实现这些编码样式?
最佳答案
寻找 ASN.1 工具(免费和商业)时,一个好的起点是 ITU-T 网页 http://www.itu.int/en/ITU-T/asn1/Pages/Tools.aspx那列出了几个。那里列出了支持 C# 的商业工具,但我没有看到免费的 C# 工具。
至于减少编码大小,这在很大程度上取决于您的 ASN.1 规范的性质和使用的编码规则。如果您主要发送文本字符串,BER 和 DER 不会导致消息大小的减少,而 PER 可以显着减少消息的大小,如果您能够生成一个“允许的字母表”约束来指示较小的集合您发送的文本中允许的字符数。
您可以在免费的在线 ASN.1 编码器解码器上尝试各种编码规则和不同的约束,以查看更改的效果 http://asn1-playground.oss.com .
关于c# - C# 中的 ASN.1 编码 BER、PER 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28823094/
我是一名初学者,正在学习 python (+pandas),希望我能很好地解释这一点。我有一个超过 300 万行的大型时间序列 pd 数据框,最初有 12 列跨越多年。这涵盖了从不同地点取票的人,这些
我们目前正在审查我们的 WCF 服务设计,困扰我的一件事是在 Per-Call 和 Per-Session 服务之间做出决定。我相信我了解两者背后的概念,但我并没有真正看到按调用服务的优势。我知道使用
这几天我在 Web 应用程序中从头开始构建一个新应用程序。 (技术是 Asp.Net,我使用的 ORM 是 Entity Framework。如果重要的话) 我不确定广泛使用的模式 session p
嗨,我收到以下错误,导致构建失败,但在 bin 中创建了 Wix 安装程序 MSI。我怎样才能避免这些错误或抑制? 错误 LGHT0204:ICE57:组件 'cmp52CD5A4CB5D668097
错误“错误 LGHT0204:ICE57:组件“XXX”同时具有每用户数据和可以是每用户或每台机器的 key 路径”是什么意思? 是否可以修复此错误? 无论如何,Wix 都会创建 msi 文件,并且可
我正在使用 NodeJS 和 amqplib构建一个简单的作业队列库(有点类似于 Jackrabbit) 用于服务,该服务应该解析包含有关许多不同事件的信息的相当大的提要。 信息被解析后,它被分发到数
我有一个 subversion 存储库,其中包含多个子文件夹,对应于构成我的项目的各种应用程序、配置文件、DLL 等(我将它们称为“模块”)。现在我们开始“分支”成几个相关的项目。也就是说,每个高级项
Google PageRank 是按整个网站(域)的一个值计算还是按每个网页计算? 最佳答案 Google 在多大程度上遵循众所周知的 PageRank 算法是他们的商业 secret 。在通用算法中
我正在构建一个网络爬虫,它有两个主要功能,它们都作为线程执行:- getter (抓取网站并将文件中的单独链接存储到数据库中)。- 下载器(根据 fetcher 返回的 url 下载文件)。 我有一个
我有一个运行 web 应用程序的 tomcat 服务器。在 webapp 的启动过程中,我使用为 interface ServletContextListener 实现的类设置了一些上下文参数。我在这
我正在建立一个系统,我希望每天为每个用户(1000+)添加一组值。 假设:我可以在这个系统中记录 Alice 和 Bob 何时醒来以及他们在 2019 年 8 月 1 日或 2024 年晚餐吃了什么。
我有一个包含选票的数据库。这些投票记录包括:“时间戳;分数” 分数是一个整数。 我想创建一个热图,所以我想要一个数据框,其中包含每个工作日每个小时的值以及该时间范围内所有分数的平均分。 如果该工作日的
我注意到您可以为 Opsworks 堆栈中的每个层创建 EBS 卷。 我的问题 :EBS 卷是在层的实例之间共享,还是每个实例都有自己的 EBS? (那么,是创建了一个 EBS,还是创建了多个?) 为
我们都知道我们应该将我们的 CSS 合并到一个文件中,但是是按站点还是按页面?我发现了两者的优缺点。 场景如下: 大型网站 CSS 文件分解为一个文件用于全局样式,多个文件用于模块 解决方案 A:将整
我有一组销售报告,其中包含报告“每天”或“每月”销售数据的商店。当我将它们绘制在同一张图表上时,“每月”数字看起来像尖峰,使图表难以理解。 我希望将那些“每月一次”的数字转换为在一个月中的几天内平均分
Google Drive API 有一个名为Queries per 100 seconds *per user* 的配额 - 但用户到底是什么?是根据 OAuth 2.0 客户端 ID 还是根据源 I
我知道 ServiceStack 提供了一个 RequiredRole 属性来控制权限,但是,这并不完全适用于我的用例。我有一个包含大量用户生成内容的网站。用户只能编辑他们有明确权限的文档。权限是按对
我有一个以下形式的数据框,其中每一行对应于机器上运行的一个作业: import pandas as pd df = pd.DataFrame({ 'MachineID': [4, 3, 2,
我有一个以下形式的数据框,其中每一行对应于机器上运行的一个作业: import pandas as pd df = pd.DataFrame({ 'MachineID': [4, 3, 2,
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我是一名优秀的程序员,十分优秀!