DES的des_ncbc_encrypt()函数密文返回长度有问题

拜占庭里一棵草 拜占庭里一棵草 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近,我用openssl库里面的des_ncbc_encrypt()函数加密一个 90个字符的字符串时,发现 当我输入不同的密码时,有的时候密文返回结果还比较正常,长度是96 ,但是输入其他密码时,有的返回密文长度是14,有的是64等等, 不明白什么原因?
以下是部分代码
string DES_Encrypt(const string cleartext, const string key)  
{
string strCipherText;
DES_cblock keyEncrypt, ivec;
memset(keyEncrypt, 0, 8);

if (key.length() <= 8)
memcpy(keyEncrypt, key.c_str(), key.length());
else
memcpy(keyEncrypt, key.c_str(), 8);

DES_key_schedule keySchedule;

DES_set_odd_parity(&keyEncrypt);

DES_set_key_checked(&keyEncrypt, &keySchedule);


memcpy(ivec, cbc_iv, sizeof(cbc_iv));

int iLength = cleartext.length() % 8 ? (cleartext.length() / 8 + 1) * 8 : cleartext.length();

unsigned char* tmp = new unsigned char[iLength +16];
memset(tmp, 0, iLength);

DES_ncbc_encrypt((const unsigned char*)cleartext.c_str(), tmp, cleartext.length()+1, &keySchedule, &ivec, DES_ENCRYPT);
strCipherText = (char*)tmp;
printf("strciper_length :%d\n",(int)(strCipherText.length()));
delete [] tmp;

return strCipherText;
}


其中key是明文密码,类似于xiaoddd这个密码就不行,而xianoin就返回长度正常(96)的密文
...全文

相关推荐

OPENSSL库的使用-DES篇 - duanxingheng的专栏 - CSDN博客.pdf

OPENSSL库的使用-DES篇 - duanxingheng的专栏 - CSDN博客.pdf

chunyangsuhao

3DES-CBC加密与SHA-256哈希:原理、C语言实现与嵌入式实战

在数据安全领域,加密算法和哈希函数是保障信息机密性与完整性的核心技术。加密算法通过对数据进行变换,确保只有授权方可以访问原始内容,其核心在于密钥管理和加密模式。哈希函数则将任意长度数据映射为固定长度的摘要,具备单向性和抗碰撞性,常用于验证数据完整性。从工程实践角度看,分组密码的工作模式(如CBC)解决了ECB模式的安全缺陷,通过引入初始化向量(IV)和链式结构,为加密注入了必要的随机性。在嵌入式系统和传统工业场景中,**3DES算法**因其与DES硬件的兼容性和成熟度,仍在特定合规领域发挥作用。而**SHA

wjxbj

逆向工程中的编码与加密算法识别与实战分析

在计算机安全与软件分析领域,编码与加密是数据处理的两大基础技术。编码作为信息的表现形式,如Base64、十六进制等,旨在实现数据的标准化传输与存储;而加密作为信息的保护手段,如AES、RSA等算法,通过密钥机制确保数据的机密性。理解其原理对软件逆向、漏洞挖掘及安全审计至关重要。在逆向工程中,快速识别Base64、AES等常见算法特征,并分析其模式与密钥,是解密通信协议、分析恶意代码的核心技能。本文聚焦于逆向实战,系统讲解如何通过特征识别、动态调试及工具链应用,高效处理编码转换与加密算法分析,帮助开发者掌握从

weixin_33714884

29Linux基础命令详解——用户管理.docx

29Linux基础命令详解——用户管理

云计算练习生

科技服务机构如何通过数据分析增强服务竞争力?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 1
收藏 已收藏
分享
返回顶部