当前位置:首页 » 编程语言 » c语言aes加密解密
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言aes加密解密

发布时间: 2023-05-07 15:32:10

⑴ 初学者,求高手给一个完整的AES加密解密算法的程序(C/C++) 希望能满足如下要求

/*128bits密钥长度及分组长度AES加解密代码
*作者:Jeffrey.zhu
*/

⑵ C# AES数据加密

使用前散对称加密算法AES
加密通常有对称加密(DES、AES)、非对称加密(RSA)、单向加密(MD5不可复原),非对称算法很安全但是速度慢一般用于传输对称加密的秘钥,本文主要介绍C#如何使用基于AES标准的Rijndael算法对数据包进行加密传输。

RijndaelManaged类为Rijndael算法管理类。这里有信悔大几个主要参数,单位都是bit:BlockSize、FeedbackSize、KeySize、Mode、Padding。这些参数可以影响私钥和IV长度,以及数据加密方式等。

ICryptoTransform为数据转换接口,有TransformBlock和TransformFinalBlock两个方法,这两个方法基本一样,主要是TransformBlock要求被处理数组需为InputBlockSize的整数滑竖倍,因为需要使用缓存减少GC这里在外部实现TransformFinalBlock中做的处理。

下方方法都是参照RijndaelManagedTransform.cs的 源码 实现的,对一个字节数组加密前需要先调用CheckBlock,返回值为存储加密后的数组大小。

加密与解密操作

网络数据传输

⑶ [高分]C语言对字符串的加密和解密

char
ch,name[30],over;
FILE
*fp;
printf("请输入要加密的文件名(正确的做法是:先把解密的数不知道,你想要什么样的加密算法。
AES不错。不过AES是对16个字节长度加密,要是不是16的倍数,处理有点麻烦据保存到字符串里,全部结束之后,一次性把解密

⑷ aes加密算法C代码

这答案是DES加密算法,不是AES,你还“3q”。。。。。。。。

⑸ 谁能给我一个C语言写的AES CBC加解密源码

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <openssl/aes.h>
#include "encode.h"

int encode(char *content,int way)
{
AES_KEY aes;
unsigned char key[AES_BLOCK_SIZE];
unsigned char iv[AES_BLOCK_SIZE];
unsigned char *encrypt_string;
unsigned char *input_string;
int len,i;

/*Set Input string*/
if((strlen(content)+1)%AES_BLOCK_SIZE==0)
len=strlen(content)+1;
else
len=((strlen(content)+1)/AES_BLOCK_SIZE+1)*AES_BLOCK_SIZE;
input_string=(unsigned char *)calloc(len,sizeof(unsigned char));
if(input_string==NULL)
return -1;
strncpy(input_string,content,strlen(content));

for(i=0;i<16;++i)
key[i]=i+12;
for(i=0;i<AES_BLOCK_SIZE;++i)
iv[i]=i;
if(way==0)
{
if(AES_set_encrypt_key(key,128,&aes)<0)
return -1;
}
else
{
if(AES_set_decrypt_key(key,128,&aes)<0)
return -1;
}

encrypt_string=(unsigned char *)calloc(len,sizeof(unsigned char));
if(encrypt_string==NULL)
return -1;
if(way==0)
AES_cbc_encrypt(input_string,encrypt_string,len,&aes,iv,AES_ENCRYPT);
else
AES_cbc_encrypt(input_string,encrypt_string,len,&aes,iv,AES_DECRYPT);
strcpy(content,(char *)encrypt_string);

free(input_string);
free(encrypt_string);

return 0;
}

⑹ c/c++实现AES加密,支持cbc等加密模式,支持多种填充模式,不要openssl实现的

使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)
、解压缩openssl的包,进入openssl的目录
、perl configure VC-WIN32
尽量在这个目录下执行该命令,否则找不到Configure文件,或者指定完整的Configure文件路径。
、ms\do_ms
在解压目录下执行ms\do_ms命令
、nmake -f ms\ntdll.mak编译后在openssl解压目录下执行,完成编译后。输出的文件在out32dll里面,包括应用程序的可执行文件、lib文件和dll文件
注意:在运行第五步时,cl编译器会抱怨说.\crypto\des\enc_read.c文件的read是The POSIX name for this item is deprecated(不被推荐的),建议使用_read。呵呵,我可不想将OpenSSL中的所有的read函数修改为_read。再看cl的错误代码 error C2220,于是上MSDN上查找:
warning treated as error - no object file generated
/WX tells the compiler to treat all warnings as errors. Since an error occurred, no object or executable file was generated.
是由于设置了/WX选项,将所有的警告都作为错误对待,所以。。。
于是打开OpenSSL目录下的MS目录下的ntdll.mak文件,将CFLAG的/WX选项去掉,存盘。

⑺ 谁知道哪里有AES算法加密,解密c++/C语言代码

推荐用java,因为有现成的class给你用。。。如果用C++有好多东西需要自己写。可能java里面20行能搞定加密和解密的所有步骤,如果C++自己把所有算法加上各种数据类型转换之类的,无法估计多多少倍的代码了。前提还是你已经会写如果做密钥。