Linux下使用gost演算法加密

2021-04-01 08:45:38 字數 1536 閱讀 3107

#include

#include

#include

#include

#include

typedef  int int32;

typedef  char int8;

typedef  unsigned char  ulong8;

typedef  unsigned short ulong16;

typedef  unsigned long  ulong32;

#ifndef bin_to_str

#define bin_to_str 0

#define str_to_bin 1

#endif

#define success 0

#define fail -1

/*函式申明*/

/*加密介面函式*/

int32 gost_enc(ulong32 *data , ulong32 *key);

/*解密介面函式*/

int32 gost_dec(ulong32 *data, ulong32 *key);

int32 encry_data( ulong32 *ldata,ulong32 *rdata,ulong32 *key);

int32 dencry_data( ulong32 *ldata,ulong32 *rdata,ulong32 *key);

int32 f(ulong32 x);/*s-盒替換、迴圈左移11位操作*/

/*左右值交換*/

int32 gost_swap( ulong32 *ldata,ulong32 *rdata);

/*gost的s-盒*/

ulong8 wz_sp[8][16] =,,,

,,,,

};/*加密金鑰使用順序表*/

ulong32 wz_spkey[32] = ;

/*s-盒替換、迴圈左移11位操作*/

int32 f (ulong32 x)

/*左右值交換*/

int32 gost_swap( ulong32 *ldata,ulong32 *rdata)

gost_swap(ldata,rdata); /*左右值交換*/

return success;

}/*解密介面函式*/

int32 gost_dec(ulong32 *data ,/*待解密資料首位址,內容需保證是64位長*/

ulong32 *key/*使用者輸入金鑰首位址,內容需保證是256位長*/

)int32 gost_enc(ulong32 *data , /*待加密資料首位址,內容需保證是64位長*/

ulong32 *key/*使用者輸入金鑰首位址,內容需保證是256位長*/

)/*32輪加密操作*/

int32 encry_data( ulong32 *ldata,ulong32 *rdata,ulong32 *key)

gost_swap(ldata,rdata); /*左右值交換*/

return success;

}/*演算法實現**結束*/

iOS下使用SHA1WithRSA演算法加簽原始碼

還有那些keystore,pkcs,p7b,p12後面介紹 rsa演算法有2個作用乙個是加密乙個是加簽。從這幾個函式中,我們可以看到,我們第一種是使用公鑰能在客戶端 加密資料,以及伺服器端用私鑰解密。第二個就是用私鑰在客戶端加簽,然後用公鑰在伺服器端用公鑰驗籤。第一種完全是為了加密,第二種是為了放抵...

Linux下MD5演算法使用

出處 我們以乙個字串為例,新建乙個檔案filename.txt,在檔案內寫入hello 然後在linux下可以使用命令md5sum filename.txt計算md5值 b1946ac92492d2347c6235b4d2611184 雖然寫入的是hello這5個字元,但是我們使用命令xxd fil...

linux下串列埠使用

串列埠終端程式設計順序 開啟 設定 讀寫 關閉。涉及到的api。1 獲取終端屬性tcgetattr 原型 int tcgetattr int fd,struct termios termios p 功能 取得終端介質 fd 初始值,並把其值賦給temios p 函式可以從後台程序中呼叫 但是,終端屬...