首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在windows中对结构进行签名并在linux中读取它。

在windows中对结构进行签名并在linux中读取它。
EN

Stack Overflow用户
提问于 2013-11-07 18:12:52
回答 2查看 93关注 0票数 0

我有一个类似如下的结构:

代码语言:javascript
复制
struct mydata
{
    int a,
    int b,
 }

我想把它填到Windows中,然后把它发送给某个人,让它在Linux中阅读。我正在编写这两个应用程序。

目标是中间的用户不应该能够更改数据,但他可以读取数据。

用户可以访问Linux代码的源代码,但不能访问windows应用程序。

我的问题是:

1-我如何做到这一点?我的第一个想法是从结构中创建一个哈希,用私钥/公钥加密,然后发送给用户(在windows中)。在Linux上,解密它并检查是否有代码匹配数据。这是最好的解决方案吗?

2-我可以使用什么类型的库?该库应在windows和Linux上可用。

3-有没有什么示例代码可以给我一个起点?

编辑1

问题更多的是如何确保数据在windows系统和Linux one之间通过文件复制(文件在sd卡上或通过电子邮件)传输时不被篡改。因此,问题更多的是如何确保数据是防篡改的,而不是如何传输它。

编辑2

我需要将数据作为写入文件的结构发送到Linux系统(一个二进制文件,当Linux上的应用程序读取该文件时,将其映射为结构,然后由应用程序使用)。因此,实际上我将它作为windows上的一个结构,然后我需要对它进行签名,并将其写入文件并发送到Linux计算机。在Linux计算机上,应用程序需要读取它,检查它是否被篡改,然后使用数据。

我的问题是如何对数据进行签名。

EN

回答 2

Stack Overflow用户

发布于 2013-11-07 18:17:55

1.)通过网络和套接字

2.)POSIX套接字API,类似于windows和linux,从一开始就忘记加密

3.) http://beej.us/guide/bgnet/

票数 0
EN

Stack Overflow用户

发布于 2013-11-10 19:45:34

首先,您需要找到一种方法将结构化内容编码/解码为一个字节数组,该数组可能与平台无关(根据字节顺序,32/64位,字符串编码...)。你应该仔细看看ASN.1。ASN.1旨在提供一种明确的、软件和硬件无关的数据编码。有多个库提供ASN.1编码器和解码器,例如OpenSSLBoost (即使并不总是有良好的文档记录)

为了防止篡改,在RFC 5652中指定了一种用于消息交换的加密标准,称为CMS (加密消息语法,又名PKCS#7)。该标准定义了多种提供防篡改功能的消息类型:签名数据和认证数据。OpenSSL仅支持签名数据消息-签名数据需要公钥加密。经过身份验证的数据更易于使用,因为它只需要共享一个公共密钥。即使我不知道支持认证数据的库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19833187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档