问题标签 [crypto++]

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 投票
2 回答
11247 浏览

c++ - 如何解决第三方库中的警告 C4505?

我有一个将 Crypto++ 用于一些散列函数的项目。最近,我决定清理一下并在 MSVC++ 上使用 4 级警告。

这是我的来源的样子:

尽管如此disable: 4505,我仍然收到此警告:

我的项目没有建立。

我该如何解决这个问题?基本上,我只想禁用第三方代码的警告;如果可以避免这样做,我不想编辑 cryptopp 本身来修复错误。

0 投票
2 回答
886 浏览

crypto++ - Crypto++ 将 Adler32 摘要(字节数组)转换为 uint32_t

我有以下问题:我正在尝试使用 计算数据块的 adler32 校验和Crypto++,但在将 byte[4] 数组输出转换为 uint32_t 后得到错误的校验和。

这个带有 crc32 的函数可以正常工作:

但计算 adler32 的函数返回无效值:

希望有人能给我一个提示。

问候费边

0 投票
0 回答
225 浏览

c++ - 不同的程序使用相同的输入调用相同的函数,但输出不同?

我正在尝试使用 s3fs,这是一个基于 FUSE 的文件系统,用于在亚马逊云端备份数据。在我的实现中,我使用加密++中的 AES:CBC 开发了两个函数来加密和解密文件中的数据。我的问题是,当我使用s3fs中的解密函数解密一个txt文件X时,在X的同一个位置结果总是错误的,但结果却不同。但是,如果我使用另一个测试程序调用相同的函数来解密文件 X,而不是在 s3fs 中,结果总是正确的。我的系统是内核 2.6.32-35、FUSE 2.8.6 的 Ubuntu。我正在使用 C++ 实现。谢谢。

PS:加密功能在s3fs程序和其他测试程序中都有效,因为同一个源文件的加密输出是相同的。只有 s3fs 程序中的解密函数会产生错误的输出。

0 投票
1 回答
2544 浏览

c# - 将 C# AES 加密字符串发送到 CyptoPP C++ 程序进行解密

我正在尝试通过从 C# 程序到 C++ 程序的 tcp 连接发送加密字符串。c++ 程序在尝试解密字符串时在 crypto++ 中崩溃。我可以在调试器中看到字符串大部分被解码但没有正确终止。例如,如果我发送“Hello world”,它会被解密为“Hello world%%@#$@#”(最后是垃圾)

这是我加密的方式

这是使用 Crypto++ 解密的 C++ 端

0 投票
1 回答
439 浏览

php - RSA在PHP中解密Crypto ++生成的消息

我已经使用 Crypto++ 生成了一个公钥/私钥对,并在客户端使用 Crypto++ (RSAES_OAEP_SHA_Encryptor) 对密码进行了编码,然后我对其进行了 base64 编码。现在我想在服务器端 PHP 脚本中解码它(通过 phpseclib)。私钥的格式为“MIIEuwIBADANBgkqhkiG9w0BAQ....”(没有中断),然后我将其格式化为:

在加载之前:

这似乎有效。但是通过以下方式解码消息:

只产生一个空字符串。没有给出错误。

我有一个类似的 ASP.Net C# 处理程序,可以毫无问题地解码消息......

有任何想法吗 ?

0 投票
1 回答
210 浏览

visual-studio-2010 - Visual Studio 宏

尝试使用 Crypto++ 时出现 LNK2001 错误。对此的官方建议是:

有两种方法可以解决这个问题,或者更改 Crypto++ 以导出这些类,通过使用 CRYPTOPP_DLL 宏,或者链接 DLL 导出库和包含非 DLL 类和函数的静态库。后者可以通过使用 cryptlib 项目的“DLL-Import”配置来构建。

最好使用第一个选项,鉴于我没有使用 Visual Studio 的经验,我找不到宏的位置和执行方法。

简而言之:我在哪里可以找到宏以及如何执行它?

干杯。

0 投票
2 回答
2294 浏览

c++ - 用于移动使用(iOS、Android)的 Crypto++ 库的子集

我需要为 Android 和 iPhone 项目中使用的跨平台库使用一些 RSA 签名方案。环顾四周后,我选择了cryptopp,但它对于静态链接来说太大了。因此,我将源代码和标题添加到我的项目中,以便仅将相关部分链接到我的库中。它仍在为最终的库添加几 MB 的发布版本。

  1. 有没有更简单或更有效的方法来减少库或cryptopp的大小?

  2. 我对编译过程中的模板生成并不十分熟悉。但我记得模板可以添加相当多的代码。有没有办法停止/改进这个(编译器选项?)?

  3. 如果我想从项目中手动删除我的简单用例未使用的所有源/头文件,是否有任何工具可以提供帮助?用它的模板挖掘cryptopp需要相当长的时间,我总是支持自动流程;)

任何帮助是极大的赞赏!

0 投票
1 回答
375 浏览

c++ - valgrind:破坏 crypto++ zlib 测试

在使用 Crypto++ 的 zlib 函数的程序上,我遇到了一个奇怪的 valgrind 错误:

我知道 Crypto++ 在某些领域使用一些手工编码的程序集来加快速度,而且我读过以 0xC5 开头的指令永远不会出现在编译代码中。这可能是由于来自一块手工编码的汇编的汇编指令吗?如果是这样,我可以通过 valgrind 禁用此检查,以便我可以继续测试我的程序吗?

0 投票
1 回答
883 浏览

c++ - Crypto++ 中的 PBKDF

我在 C# 中有以下代码

.Net 的PasswordDeriveBytes用途PBKDF1。我正在使用“SHA1”散列算法来生成 32 字节的密钥。

请告诉我如何在加密++中实现这一点。在使用 PBKDF2 的 crypto++ 中,它生成 20 字节的密钥。如何制作 C# 生成的 32 字节密钥。

0 投票
1 回答
1258 浏览

android - 在服务器端验证应用内计费签名

我正在研究我的应用程序中应用内计费的安全性。

我在服务器上进行验证,它是用 c++ 编写的。

哪些方法可以在 C++ 中验证它?

我可以使用 openssl 命令吗?