使用AES_cbc_encrypt进行加解密,加密后数据解密一直失败
以下是测试代码:
const char* shaestr=“shenglishenglish”;
const char* siv = "0000000000000000";
ERPTY_ERROR_CODE GdEncrypt(const char* rawBuff, unsigned char** encrpyBuf)
{
int erro = 0;
if (rawBuff == NULL) {
return INVAILD_INPUT;
}
// 判断 header
if (CheckSLENVersion((unsigned char*)rawBuff)) {
return SUCCESS;
}
size_t rawlen = strlen(rawBuff);
size_t finalSize = 0;
unsigned char* paddingBuff = NULL;
paddingBuff = PaddingBuff(rawBuff, rawlen, &finalSize, &erro);
if (paddingBuff == NULL) {
return (ERPTY_ERROR_CODE)erro;
}
AES_KEY aesKey;
int status = 0;
status = AES_set_encrypt_key((const unsigned char*)shaestr, g_cryptLength, &aesKey);
*encrpyBuf = (unsigned char*)calloc(finalSize, sizeof(unsigned char));
if (*encrpyBuf == NULL) {
free(paddingBuff);
return MALLOC_ENCRPY_BUF_ERROR;
}
int cipherlen = strlen((const char*)paddingBuff);
AES_cbc_encrypt(paddingBuff, *encrpyBuf, finalSize, &aesKey, siv, AES_ENCRYPT);
AES_KEY deaesKey;
status = AES_set_encrypt_key((const unsigned char*)shaestr, g_cryptLength, &deaesKey);
int testlen = strlen((const char*)(*encrpyBuf));
char test[1024] = {0};
AES_cbc_encrypt(*encrpyBuf, (unsigned char*)test, finalSize, &deaesKey, siv, AES_DECRYPT);
printf("test decrypt :%s\n", test);
free((*encrpyBuf));
return SUCCESS;
}
int mian() {
const char* plaintext = "shengli0";
unsigned char* ciphertext = NULL;
GdEncrypt(plaintext ,ciphertext );
return 0;
}
相关推荐
fastadmin-thnkphp:实现api中钉钉的回调
fastadmin-thnkphp:实现api中钉钉的回调
从微信小程序反编译到AES加解密爬虫的完整实战指南
在网络数据抓取领域,加密技术是保护数据传输安全的核心手段,其中AES(高级加密标准)因其高安全性和广泛适用性成为主流选择。其原理基于对称加密算法,通过密钥对数据进行分组加密,常见模式如CBC(密码分组链接)能有效防止数据被篡改。理解AES加解密对于分析网络协议、保障通信安全具有重要技术价值,尤其在移动应用和小程序的数据交互场景中。当面对加密接口时,逆向工程成为关键突破口,通过反编译技术分析源码中的加密逻辑,可以复现加解密流程。本文聚焦于微信小程序场景,详细拆解了如何通过逆向获取源码、分析AES加密参数,并最
Vue项目集成AES-CBC加密:前端敏感数据安全传输实战指南
对称加密是保障数据传输机密性的核心技术,其中AES(高级加密标准)因其高安全性和广泛支持成为行业首选。在CBC(密码块链接)模式下,通过引入随机初始向量(IV),有效解决了ECB模式的安全缺陷,确保了相同明文加密后产生不同密文。这项技术在前端领域的价值日益凸显,尤其在处理用户敏感信息(如手机号、身份证号)时,能有效防止浏览器控制台或网络抓包导致的明文泄露。在Vue等现代前端框架中,通过crypto-js库或Web Crypto API实现AES-CBC加密,并与后端Java、Python等服务无缝对接,已成
Open-AutoGLM数据解密失败:系统性排查与修复指南
在软件开发和数据安全领域,数据加密与解密是保障敏感信息机密性的核心技术。其原理是通过特定算法和密钥对数据进行转换,确保只有授权方才能访问原始内容。这项技术的核心价值在于为模型权重、配置文件等关键资产提供安全存储与传输保障,广泛应用于AI模型部署、分布式系统配置管理等场景。实践中,密钥管理混乱、算法参数失配等常见问题常导致解密流程失败,影响系统稳定性。本文聚焦Open-AutoGLM框架,针对数据解密失败这一高频痛点,深入剖析其背后的密钥管理体系与算法兼容性根源,并提供从诊断到修复的完整工程实践方案,帮助开发
Vue项目前端AES加密实战:从原理到CryptoJS集成与安全实践
数据安全是Web开发的核心议题,尤其在涉及用户敏感信息的场景。HTTPS协议保障了数据传输过程的安全,但数据在离开浏览器前的明文状态仍面临XSS攻击、开发者工具窥探等风险。前端加密技术作为一道补充防线,旨在提升攻击门槛,其核心在于选择合适的加密算法。AES(高级加密标准)作为一种对称加密算法,因其速度快、安全性高且被广泛支持,成为前端加密的首选。在工程实践中,通过CryptoJS等库可以便捷地在Vue项目中实现AES加密解密功能,有效保护密码、身份证号等敏感数据。本文聚焦于AES-CBC模式的应用,详解密钥


新手乐园
