aes加密的c語言實現,在ubuntu13.10下測試成功。
輸入1.txt加密內容,key金鑰
輸出2.txt密文,3.txt解密後的明文
備註:網上下的,但是這明顯不是乙個ase加密演算法,而是乙個des加密演算法!
後來我又發現,這似乎是乙個ase加密的s盒簡單實現。。。終歸所學不足。
#include "stdio.h"
#include "memory.h"
#include "time.h"
#include "stdlib.h"
#define plain_file_open_error -1 //明文開啟失敗
#define key_file_open_error -2//金鑰檔案開啟失敗
#define cipher_file_open_error -3//暗文開啟失敗
#define ok 1 //加密或者解密成功
typedef char elemtype;
/*初始置換表ip*/
int ip_table[64] = ;
/*逆初始置換表ip^-1*/
int ip_1_table[64] = ;
/*擴充置換表e*/
int e_table[48] = ;
/*置換函式p*/
int p_table[32] = ;
/*s盒*/
int s[8][4][16] =
/*s1*/,,
,},/*s2*/,,
,},/*s3*/,,
,},/*s4*/,,
,},/*s5*/,,
,},/*s6*/,,
,},/*s7*/,,
,},/*s8*/,,
,}};
/*置換選擇1*/
int pc_1[56] = ;
/*置換選擇2*/
int pc_2[48] = ;
/*對左移次數規定*/
int move_times[16] = ;
int bytetobit(elemtype ch,elemtype bit[8]);
int bittobyte(elemtype bit[8],elemtype *ch);
int char8tobit64(elemtype ch[8],elemtype bit[64]);
int bit64tochar8(elemtype bit[64],elemtype ch[8]);
int des_makesubkeys(elemtype key[64],elemtype subkeys[16][48]);
int des_pc1_transform(elemtype key[64], elemtype tempbts[56]);
int des_pc2_transform(elemtype key[56], elemtype tempbts[48]);
int des_rol(elemtype data[56], int time);
int des_ip_transform(elemtype data[64]);
int des_ip_1_transform(elemtype data[64]);
int des_e_transform(elemtype data[48]);
int des_p_transform(elemtype data[32]);
int des_sbox(elemtype data[48]);
int des_xor(elemtype r[48], elemtype l[48],int count);
int des_swap(elemtype left[32],elemtype right[32]);
int des_encryptblock(elemtype plainblock[8], elemtype subkeys[16][48], elemtype cipherblock[8]);
int des_decryptblock(elemtype cipherblock[8], elemtype subkeys[16][48], elemtype plainblock[8]);
int des_encrypt(char *plainfile, char *keystr,char *cipherfile);
int des_decrypt(char *cipherfile, char *keystr,char *plainfile);
/*位元組轉換成二進位制*/
int bytetobit(elemtype ch, elemtype bit[8])else if(isok==cipher_file_open_error)else if(isok==plain_file_open_error)else if(isok==cipher_file_open_error)else if(isok==plain_file_open_error){
printf("明文檔案讀取失敗!\n");
else{
printf("未知錯誤,請重試!\n");
getchar();
return 0;
aes子金鑰生成c語言 AES加密的C語言實現
aes加密的c語言實現,在ubuntu13.10下測試成功。輸入1.txt加密內容,key金鑰 輸出2.txt密文,3.txt解密後的明文 備註 網上下的,但是這明顯不是乙個ase加密演算法,而是乙個des加密演算法!後來我又發現,這似乎是乙個ase加密的s盒簡單實現。終歸所學不足。include ...
aes子金鑰生成c語言 HBase配置AES加密
版本 hdp 3.0.1.0 hbase 2.0.0 為了避免第三方非法訪問我們的重要資料,我們可以給hbase配置加密演算法,目前hbase只支援使用aes加密演算法,用於保護靜態的hfile和wal資料。hbase配置的aes加密是一種端到端的加密模式,其中的加 解密過程對於客戶端來說是完全透明...
AES的C 實現 128位金鑰
寫了乙個aes的c 實現,僅支援128位金鑰,寫得匆忙,不夠規範,僅供參考。aes.h ifndef aes h define aes h include include using namespace std class aes void aes encryptionprocess finalro...