基於Java的IDEA加密演算法

2021-05-02 07:53:41 字數 1188 閱讀 8149

1.加密過程的實現

void idea_enc( int data11, /*待加密的64位資料首位址*/ int key1){

int i ;

int tmp,x;

int zz=new int[6];

for ( i = 0 ; i < 48 ; i += 6) { /*進行8輪迴圈*/

for(int j=0,box=i; j<6; j++,box++){

zz[j]=key1[box];

x = handle_data(data11,zz);

tmp = data11[1]; /*交換中間兩個*/

data11[1] = data11[2];

data11[2] = tmp;

tmp = data11[1]; /*最後一輪不交換*/

data11[1] = data11[2];

data11[2] = tmp;

data11[0] = mul(data11[0],key1[48]);

data11[1] =(char)((data11[1] + key1[49])%0×10000);

data11[2] =(char)((data11[2] + key1[50])%0×10000);

data11[3] = mul(data11[3],key1[51]);

2.解密過程的實現

void key_decryexp(int outkey)/*解密金鑰的變逆處理*/

{ int tmpkey = new int[52] ;

int i;

for ( i = 0 ; i < 52 ; i++) {

tmpkey[i] = outkey[ wz_spkey[i] ] ; /*換位*/

for ( i = 0 ; i < 52 ; i++) {

outkey[i] = tmpkey[i];

for ( i = 0 ; i < 18 ; i++) {

outkey[wz_spaddrever[i]] = (char)(65536-outkey[wz_spaddrever[i]]) ; /*替換成加法逆*/

for ( i = 0 ; i < 18 ; i++){

outkey[wz_spmulrevr[i]] =(char)(mulinv(outkey[wz_spmulrevr[i]] )); /*替換成乘法逆*/

IDEA加密演算法 c實現

vs2013環境下面成功編譯並且執行 idea演算法,全稱是internationale data encrypt algorithm 一種國際資料加密演算法 至今為止都很安全,是一種塊加密演算法。金鑰長度為128bit 16位元組 以每64bit 8位元組 為單位進行加密。演算法主要流程 1.首先...

基於java的SHA1加密演算法

package sha1 public class sha1 摘要資料儲存陣列 private int digestint new int 5 計算過程中的臨時資料儲存陣列 private int tmpdata new int 80 計算sha 1摘要 private int process in...

IDEA資料加密演算法介紹

idea 資料加密演算法及實現 idea 對稱資料加密演算法,是我 2000 年剛畢業,工作需要進行資料加密時,學習 實現的第乙個標準資料加密演算法,並且此後就深深地迷上了資料加密這個方面,以後連續兩年潛心學習和研究這方面的知識與技術。在此過程中,非常感謝同事李哥對我的大力幫助,並從此成了很好的朋友...