使用LibTomCrypt做AES加解密(2)

2018-12-04 22:16

//CBC模式要求是块大小的倍数,末尾可以pad上自己的消息,前面简单置零,所以可以正常写文件

while(!feof(fileCipherText)){ memset(pt,0,sizeof(pt)); memset(ct,0,sizeof(ct));

len = fread(ct,sizeof(ct[0]),16,fileCipherText); if(len < 1)//没有读成功 break; //解密

error = cbc_decrypt(ct,pt,16,&cbcAES); if(error != CRYPT_OK){

printf(_T(“cbc_decrypt error:%s”),error_to_string(error)); break; }

fwrite(pt,sizeof(pt[0]),16,decryptFile); }

//关闭文件

fclose(fileCipherText); fclose(decryptFile); //完成流加解密 cbc_done(&cbcAES); //end 解密流程

//////////////////////////////////////////////////////////////////////// EndOfCrypt:

//注销加解密器

error = unregister_cipher(&aes_desc); if(error != CRYPT_OK){

printf(_T(“unregister_cipher(&aes_desc) error:%s”),error_to_string(error)); return (-1); } return 0; }

最后,aes和rijndael是同义词,在ECB加解密中用哪个都一样,看tomcrypt_cipher.h文件: #define aes_ecb_encrypt rijndael_ecb_encrypt

区别是find_cipher返回这两个名字的索引不一样;另外,用register_cipher函数注册aes_desc时,还有一个aes_enc_desc可能会让人迷惑,其实这个aes_enc_desc如其名,只用于加密,其cipher_descriptor中的解密函数指针是空的,这个在其他加密算法会用到。

我本来想在FreeBSD下也做个编译,但VB一只装不上8.2,下次讲椭圆曲线加解密的时候再弄了。


使用LibTomCrypt做AES加解密(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江省2018年高考语文命题比赛试题(含参考答案及评分标准)1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: