我正在尝试开发一个 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) 我正在开发一个 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++ 项目中的大量警告。例如,考虑这个函数:
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。