⑴ 初學者,求高手給一個完整的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++自己把所有演算法加上各種數據類型轉換之類的,無法估計多多少倍的代碼了。前提還是你已經會寫如果做密鑰。