【发布时间】:2013-07-05 11:08:41
【问题描述】:
我需要将各种二进制数据作为 blob 存储在数据库中。除了自定义格式之外,我注意到我也许可以使用 ASN.1 格式。
现在,我可以编写一个自己的ASN编码器,但在此之前我想问一下:
是否有C# 库可以轻松地将数据编码为ASN.1 格式?
我已经看到Lev Walkin blog on ASN.1,我显然可以通过互操作使用它......但我想知道 .NET 是否已经提供了一些方便的东西。
我见过 System.Security.Cryptography 命名空间,但它似乎只用于解密 ASN 数据(或多或少地获得加密证书等) )。
【问题讨论】:
-
很有趣,非常感谢。我宁愿使用内部 .NET 库,而不是像这样的开源项目,如果这是我唯一的选择,我将自己实现一个编码器,但是 +1 以获得好的建议
-
ASN.1 是描述如何构造对象的符号和规则集。您需要选择/创建您希望用于存储数据的特定 ASN.1 结构。 IE。您不能只是将某些东西变成“ASN.1 格式”——您需要将其编码为 ASN.1 对象(basic type 或更复杂的由基本类型组成的结构)。
-
@Duncan,嗯,是的,我认为这在某种程度上暗示了......如果我不够清楚,请原谅......
-
请注意,许多库仅提供 BER/DER 编码/解码。这不是 ASN.1 本身的意义所在。 ASN.1 是关于定义结构的(正如 Duncan 所指出的)。通常,您应该为您的特定编程环境自动生成类,并使用下面的 BER/DER(甚至 PER)解析器来读取结构。不过,如果您无法使用 BER/DER 库直接序列化您的数据,请不要花太多时间。
标签: c# cryptography asn.1