Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于验证下载的小型非对称密码实现 >允许一个小型C++应用程序在Internet上连接的客户端更新自己,我需要一个基于公钥验证下载的机制。诸如DSA或RSA之类的算法似乎能够很好地做到这一点_C++_Rsa_Dsa - Fatal编程技术网

用于验证下载的小型非对称密码实现 >允许一个小型C++应用程序在Internet上连接的客户端更新自己,我需要一个基于公钥验证下载的机制。诸如DSA或RSA之类的算法似乎能够很好地做到这一点

用于验证下载的小型非对称密码实现 >允许一个小型C++应用程序在Internet上连接的客户端更新自己,我需要一个基于公钥验证下载的机制。诸如DSA或RSA之类的算法似乎能够很好地做到这一点,c++,rsa,dsa,C++,Rsa,Dsa,然而,看看著名的可用库(Crypto++,LibTomCrypt),它们最终都会使我的二进制文件>500k变大,而在我看来,这样的逻辑可以在几个k中实现。是否有任何库以某种方式实施RSA/DSA哈希验证,比如说,如果您仅限windows,则只要您的应用程序部署在win2k或更高版本上,您就可以链接到windows Crypto API 编辑: 另一个可能的解决方案是,如果你只需要验证下载的文件是否被破坏,那么谷歌搜索一下源代码就可以了。根据read me在编译的目标代码顶部3k处的说明。描述了一

然而,看看著名的可用库(Crypto++,LibTomCrypt),它们最终都会使我的二进制文件>500k变大,而在我看来,这样的逻辑可以在几个k中实现。是否有任何库以某种方式实施RSA/DSA哈希验证,比如说,如果您仅限windows,则只要您的应用程序部署在win2k或更高版本上,您就可以链接到windows Crypto API

编辑:
另一个可能的解决方案是,如果你只需要验证下载的文件是否被破坏,那么谷歌搜索一下源代码就可以了。根据read me在编译的目标代码顶部3k处的说明。

描述了一个椭圆曲线库,根据作者的说法,它可以配置为在微控制器上只需要约7k ROM和200字节以下的RAM。

您真的需要密码吗? 通常,要验证下载,可以使用MD5或SHA之类的散列函数。也许你可以用这些找到一个小图书馆


无论哪种方式,您都可以尝试openssl库。但是,我的机器上的.a大约有400K和250K被剥离。

我想您可能会发现该库满足您的需要。

校验和可以轻松处理类似的验证工作。

由于我没有找到适合我特定需要的库,我为此创建了自己的库:。目前的实现占用了大约50k的程序内存,这主要是由于包含了bignum math lib,但未来的版本可能会被剥离更多。

而500k的问题是什么?认真地谁的硬盘或连接不能承受500kb?实际上500k是很多。特别是当谷歌搜索一下就可以得到RSA和MD5的独立实现时。您所需要的只是一个哈希算法(MD5),然后是RSA来执行公钥/私钥部分。MD5基本上不受严肃的密码学家的欢迎,SHA-1可能是一个更好的选择。MD5在检测损坏方面绝对是过火了,CRC64可能是一个更好的选择。重点不是验证下载的字节顺序是否正确,而是验证其真实性,并防止同一网段上的人使用恶意二进制文件强制更新。重点不是验证下载的字节顺序是否正确,但要验证其真实性,并防止同一网段上的某人使用恶意二进制文件强制更新。