小编fbo*_*s22的帖子

使用 OpenSSL C++ 库和 PHP 的 Blowfish 加密数据不一致

我正在尝试开发一个 C++ 程序,对一些数据进行加密,以便稍后使用基于 PHP 的 Web 服务进行解密。但是,我在使用 PHP 中的 openssl_decrypt() 方法使用 Blow-fish CBC 方法解密数据时遇到问题。

我正在测试此代码 C++ 代码来加密消息并转换为 base64 格式以使用我的 PHP 程序进行解密。这是 C++ 程序的代码。

#include <secureinfra.hpp>
#include <iostream>

int main()
{
    cout << "Unit Test for the crypto system" << endl;
    SecureInfrastructure mySec;

    /* A 256 bit key and IV */
    auto *key = (unsigned char *)"ZdOAq0yn6H1i35TywbLrtqBO4NCjh7Vh";
    auto *iv = (unsigned char *)"01234567";

    /* Message to be encrypted */
    auto *plaintext = (unsigned char *)"The quick brown fox jumps over the …
Run Code Online (Sandbox Code Playgroud)

php c++ encryption openssl

5
推荐指数
1
解决办法
1009
查看次数

Google RE2 无法识别正则表达式中的 Unicode 转义

我正在开发一个 C++ 应用程序,它通过使用 Google RE2 库使用正则表达式验证配置文件。配置文件的内容被读入 std::string 中;

到目前为止,我声明了包含正则表达式的字符串:

const string EXPR_FAILED_FILE(R"([^\u0020-\u007E\n]|(\b.*(Mensagem|Antes|Loop|Movimentar|\|).*)|\\[0-9]{3,4})");
Run Code Online (Sandbox Code Playgroud)

但是,在下面的实现中,我在检测测试字符串(strInput)中的某些无效字符时遇到了一些问题

bool checkStringConsistency(const string& strInput){
    RE2 re(EXPR_FAILED_FILE);
    bool b_matches = RE2::FullMatch(strInput, re);
    return b_matches;
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我在 stderr 中收到以下消息:

re2/re2.cc:205: Error parsing '[^\u0020-\u007E\n]|(\b.*(Mensagem|Antes|Loop|Movimentar|\|).*)|\\[0-9]{3,4}': invalid escape sequence: \u
re2/re2.cc:890: Invalid RE2: invalid escape sequence: \u
Run Code Online (Sandbox Code Playgroud)

RE2 似乎无法识别\u寻找 Unicode 字符范围的序列。我在regexr.com上测试了这个表达式,并且正常检测到无效字符。

这里可能出了什么问题?

c++ regex unicode re2

2
推荐指数
1
解决办法
1358
查看次数

自动强制转换为 void 未使用的变量 C++

我正在尝试解决由许多未使用的变量生成的 C++ 项目中的大量警告。例如,考虑这个函数:

void functionOne(int a, int b)
{
    // other stuff and implementations :D
    doSomethingElse();
    runProcedureA();
}
Run Code Online (Sandbox Code Playgroud)

在我的项目中,为了抑制警告,我只是将未使用的变量强制转换为void,因为我无法更改方法签名。

void functionOne(int a, int b)
{
    (void)a;
    (void)b;
    // other stuff and implementations :D
    doSomethingElse();
    runProcedureA();
}
Run Code Online (Sandbox Code Playgroud)

这项技术工作正常,但我有大量的功能需要执行此操作以解决警告问题。有没有办法通过将所有未使用的参数强制转换为void来自动重构所有这些函数?

目前,我正在使用 CLion IDE 和 VSCODE。

c++ variables casting void unused-variables

0
推荐指数
1
解决办法
77
查看次数

标签 统计

c++ ×3

casting ×1

encryption ×1

openssl ×1

php ×1

re2 ×1

regex ×1

unicode ×1

unused-variables ×1

variables ×1

void ×1