能力值:
( LV2,RANK:10 )
|
-
-
2 楼
#include <crypto/aes.h>
#include <crypto/modes.h>
#include <crypto/filters.h>
#include <string>
using namespace std;
using namespace CryptoPP;
#pragma comment(lib,"cryptolibD32.lib")
string aes_encrypt(string& plain, string& key) {
ECB_Mode<AES>::Encryption e((unsigned char *)key.c_str(), key.length());
string cipher;
StringSource ss(plain, true,
new StreamTransformationFilter( e,
new StringSink( cipher ),
StreamTransformationFilter::NO_PADDING) );
return cipher;
}
最后于 2023-3-12 19:33
被Mxixihaha编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
我做过一个解这个的,其实主要是80后主要采用的是AES-GCM,通过判断密文的前几位来看,80前的主要是用的windows提供的有一个加密的函数叫cryptprotect的什么.解密的结果长度和特征不匹配什么的,是因为sqlite取值的时候,没用对,应该sqlite3_column_text,然后用sqlite3_column_bytes获取密文的长度,再丢到解密算法中去解密.
|
|
|