问题标签 [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.
c++ - RSASSA_PKCS1v15_SHA_Signer 和 PK_SignatureScheme::KeyTooShort 异常
我第一次使用 Crypto++,遇到了一些麻烦。为什么这在 C# 中有效(使用相同的密钥),但在 Crypto++ 中无效?我将在下面展示我的 C# 和 C++ 代码。
C# 代码(这有效!):
现在,我的 C++ 代码不起作用:
根据我所知道的,Crypto++ 的 'RSASSA_PKCS1v15_SHA_Signer' 是我想要的等同于 C# 的 'RSAPKCS1SignatureFormatter' 并将散列算法设置为 SHA1。
它抛出的错误是:
proj.exe 中 0x7646B9BC 处未处理的异常:Microsoft C++ 异常:> CryptoPP::PK_SignatureScheme::KeyTooShort 在内存位置 0x0040EF18。
感谢您的帮助,Hetelek。
php - Crypto++ 到 PHP mcrypt 不起作用
我有一个使用 Crypto++ 将加密数据发送到 PHP 站点的 C++ 应用程序。但是,当数据到达 PHP 端时,它并没有正确解密数据。
C++ / Crypto++ 代码:
PHP代码:
注意:我知道 ECB 是一个糟糕的加密模式选择,但我希望在没有增加 IV 的奇怪之处的情况下让它工作,然后使事情复杂化。
php - 为什么 PHP Mcrypt 返回帖子消息垃圾?
从这里使用相同的(基本)代码但切换到 MCRYPT_RIJNDAEL_128,我现在从 php mcrypt_decrypt 中获取正确的数据,除非在某些情况下,它会在我的消息末尾用看似随机的二进制字符填充换行符。
例如,以下内容从解密请求中返回:
我认为这是一个填充问题,但即使我将字符串填充到正确的长度,我偶尔也会得到垃圾,并且通常需要填充的字符串偶尔会恢复正确。
这里发生了什么?
c++ - Crypto++ 是否支持 TOFB-I?
我正在开发一个 C++ 应用程序来解密其他人使用 TOFB-I(TDEA 输出反馈 - 交错)加密的数据。为此,我使用 Crypto++ 库。
不幸的是,解密的结果似乎不起作用:第一个字节被正确解密,其余的只是无意义的数据。我用 Linux 命令行工具 OpenSSL 仔细检查并得到完全相同的结果。所以我倾向于相信我正在应用一个带有错误反馈的解密算法,因此第一个 IV 工作正常,但反馈出现问题。
我的问题是:如何应用 DES_OFB 模式的交错变体?
在 Crypto++ 或 OpenSSL 文档中都找不到任何关于此的内容。
encryption - 使用 Crypto++ 的 AES 示例
我一直在互联网上搜索好的c++ AES 代码示例/教程,它教授加密技术的基础知识和库的使用,但到目前为止,我还没有获得像样的材料。
好:易于理解(只是随时随地学习的基础知识)。
compilation - 使用 Visual C++ 2010 Express 编译 cryptopp
我需要使用 Visual C++ 2010 express 编译 cryptopp(32 位)。我下载了5.6.1版本,打开了crypttest.sln,VS需要做一些转换——失败了。*.vcproj 文件在其中指定了 x64 平台,但以某种方式失败了。我试图调整 .vcproj 文件并删除 x64,但它仍然因一些奇怪的错误而失败:
我需要以某种不同的模式编译静态库(需要将其链接到不同的 dll),但我不知如何将其加载到 Visual Studio 中。
c - C 中的 Crypto++ 等价物
是否有任何等效于加密原语的开源 ANSI-C 库。我知道 C++ 的 Crypto++,但找不到 C 的任何东西
大多数情况下我需要 SHA-1、SHA-2、AES、RSA
java - 将 ECIES ECP CryptoPP 转换为 JAVA
我有一个 202 字节的密钥,用于解密二进制文件。
我尝试为此使用 jsafejce:
和
但是第一个我得到一个块错误,必须除以 16,第二个我得到一个 mac 检查错误。
有没有人有什么建议?
cryptography - C# SHA256Managed 和 cryptopp::SHA256 有什么区别
我正在尝试用 cryptopp::SHA256 替换 MS SHA256Managed 函数。这是 C# 代码
输出结果:
关键种子 0x5d,0x50,0x68,0xbe,0xc9,0xb3,0x84,0xff,0x60,0x44,0x86,0x71,0x59,0xf1,0x6d,0x6b,0x75,0x55,0x44,0xfc,0xd5,0x11,0x69,0x89, 0xb1,0xac,0xc4,0x27,0x8e,0x88
密钥 ID 0x39,0x68,0xe1,0xb6,0xbd,0xee,0xf6,0x4f,0xab,0x76,0x8d,0x48,0x2d,0x8d,0x2b,0x6a,
sha_a:32 0x7b,0xec,0x8f,0x1b,0x60,0x4e,0xb4,0xab,0x3b,0xb,0xbd,0xb8,0x71,0xd6,0xba,0x71,0xb1,0x26,0x41,0x7d,0x99,0x55,0xdc,0x8e ,0x64,0x76,0x15,0x23,0x1b,0xab,0x76,0x62,
Crypto++的替换函数如下:
但是输出的哈希值为 DB 36 C9 F6 F7 29 6D 6F 52 21 DA 9F 55 1D AE BC 3E 5A 15 DF E1 37 07 EE 8F BC 73 61 5F D6 E1 C3 与C#的sha_a结果不同。
从MSDN和Cryptopp 参考资料中,SHA256Managed::TransformBlock 和 SHA256Managed::TransformFinalBlock 对 Cryptopp::Update 和 Cryptopp::Final 做了同样的事情。
SHA256Managed 和 cryptopp::SHA256 有什么区别导致这个结果?
c++ - 尝试解密 2 密钥三重 DES 的无效块填充
我正在尝试在 C++ 中使用 crypto++ 实现 2 键三重 DES。
我的实现基于位于此处的 crypto++ wiki 中的代码。
wiki 上的代码正确构建;当我运行示例程序时,我可以看到它正在正确加密和解密。
对于我的实现,我正在尝试执行以下操作:
用户可以运行“desimp.exe encrypt test.txt”。该程序将对 test.txt 进行加密,然后输出一个名为 test.txt.des 的加密文件。这似乎工作正常。
用户可以运行“desimp.exe decrypt test.txt.des”,程序将解密 test.txt.des 并将解密后的文本输出到文件“decrypted.txt”我无法让它工作。我得到的错误是“ StreamTransformationFilter: invalid PKCS #7 block padding found ”
我相信我可能还需要在加密时将 iv 中的数据保存到文件中。它是否正确?我已经尝试过这样做,并且我认为我能够将 iv 正确保存到文件中 - 但我认为为了读取 iv 以用于解密,它需要作为数组读取8 个字节。当我尝试保存 iv 时 test.txt.iv 的文件大小为 21 个字节。如果这是正确的方法,我不确定如何进行。如果这是错误的方法,我想知道我需要做些什么不同的事情。这是代码: