crypto++使用DES加密(ECB pkcs7padding )

zeropadding

ZeroPadding,数据长度不对齐时使用0填充,否则不填充。使用0填充有个缺点,当元数据尾部也存在0时,在unpadding时可能会存在问题。

pkcs7padding

假设每个区块大小为blockSize
<1>已对齐,填充一个长度为blockSize且每个字节均为blockSize的数据。
<2>未对齐,需要补充的字节个数为n,则填充一个长度为n且每个字节均为n的数据。

pkcs5padding

PKCS7Padding的子集,只是块大小固定为8字节。

ECB 模式

在这里插入图片描述

//加密
string	DES_encrypt(const char *key, string &content){
	string cipher;
	try{
		ECB_Mode<DES>::Encryption	e;
		e.SetKey((const byte*)key, DES::KEYLENGTH);
		StringSource(content, true, new StreamTransformationFilter(e,new StringSink(cipher)));
	}
	catch (const Exception &e){
		cout << e.what() << endl;
	}
	return cipher;
}
//解密
string	DES_decrypt(const char *key, string &cipher){
	string plain;
	try{
		ECB_Mode<DES>::Decryption	e;
		e.SetKey((const byte*)key, DES::KEYLENGTH);
		StringSource(content, true, new StreamTransformationFilter(e,new StringSink(plain)));
	}
	catch (const Exception &e){
		cout << e.what() << endl;
	}
	return plain;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值