使用AES_cbc_encrypt进行加解密,加密后数据解密一直失败

BluceTao BluceTao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

以下是测试代码:

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中钉钉的回调

25号底片~

从微信小程序反编译到AES加解密爬虫的完整实战指南

在网络数据抓取领域,加密技术是保护数据传输安全的核心手段,其中AES(高级加密标准)因其高安全性和广泛适用性成为主流选择。其原理基于对称加密算法,通过密钥对数据进行分组加密,常见模式如CBC(密码分组链接)能有效防止数据被篡改。理解AES加解密对于分析网络协议、保障通信安全具有重要技术价值,尤其在移动应用和小程序的数据交互场景中。当面对加密接口时,逆向工程成为关键突破口,通过反编译技术分析源码中的加密逻辑,可以复现加解密流程。本文聚焦于微信小程序场景,详细拆解了如何通过逆向获取源码、分析AES加密参数,并最

weixin_34088583

Vue项目集成AES-CBC加密:前端敏感数据安全传输实战指南

对称加密是保障数据传输机密性的核心技术,其中AES(高级加密标准)因其高安全性和广泛支持成为行业首选。在CBC(密码块链接)模式下,通过引入随机初始向量(IV),有效解决了ECB模式的安全缺陷,确保了相同明文加密后产生不同密文。这项技术在前端领域的价值日益凸显,尤其在处理用户敏感信息(如手机号、身份证号)时,能有效防止浏览器控制台或网络抓包导致的明文泄露。在Vue等现代前端框架中,通过crypto-js库或Web Crypto API实现AES-CBC加密,并与后端Java、Python等服务无缝对接,已成

lhb739921140

Open-AutoGLM数据解密失败:系统性排查与修复指南

在软件开发和数据安全领域,数据加密与解密是保障敏感信息机密性的核心技术。其原理是通过特定算法和密钥对数据进行转换,确保只有授权方才能访问原始内容。这项技术的核心价值在于为模型权重、配置文件等关键资产提供安全存储与传输保障,广泛应用于AI模型部署、分布式系统配置管理等场景。实践中,密钥管理混乱、算法参数失配等常见问题常导致解密流程失败,影响系统稳定性。本文聚焦Open-AutoGLM框架,针对数据解密失败这一高频痛点,深入剖析其背后的密钥管理体系与算法兼容性根源,并提供从诊断到修复的完整工程实践方案,帮助开发

weixin_34187862

Vue项目前端AES加密实战:从原理到CryptoJS集成与安全实践

数据安全是Web开发的核心议题,尤其在涉及用户敏感信息的场景。HTTPS协议保障了数据传输过程的安全,但数据在离开浏览器前的明文状态仍面临XSS攻击、开发者工具窥探等风险。前端加密技术作为一道补充防线,旨在提升攻击门槛,其核心在于选择合适的加密算法。AES(高级加密标准)作为一种对称加密算法,因其速度快、安全性高且被广泛支持,成为前端加密的首选。在工程实践中,通过CryptoJS等库可以便捷地在Vue项目中实现AES加密解密功能,有效保护密码、身份证号等敏感数据。本文聚焦于AES-CBC模式的应用,详解密钥

weixin_33720956
评论 2
收藏 已收藏
分享
返回顶部
BluceTao
新手乐园 33,315 成员 41,769 内容