鑰控加密演算法

2021-10-05 13:24:33 字數 2952 閱讀 1118

解密函式:

四、實現**(c#)

五、執行結果

六、開源位址

對給定的明文進行加密,比雙軌加密更加複雜,破解難度更大。

明文排成矩陣,金鑰寫在矩陣的上邊,按金鑰字母在字母表中排序把矩陣按列寫出即為密文。

加密函式:

1、對金鑰處理

2、對內容加密

解密函式:

1、對金鑰處理

2、對內容解密

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace sslhomework1.service}}

//對於分組外的資料處理

if(leftlenth>0)

}else

// console.writeline(string.join("\n", ciphertext).toupper());

//將分組後的密文按照金鑰序列排列,並將字母全部轉換成大寫

return

string

.join

("\n"

,changetheorder

(resultkey,ciphertext)).

toupper()

;}else

}///

/// 解密

///

///

///

public

string

deciphering

(string content,

string key)

decryption.

add(temp.

tolower()

);}// console.writeline(string.join("", decryption));

result =

string

.join(""

, decryption)

;//將剩餘的1乙個字元拼接回原來的分片

for(

int i =

0; i < resultkey.length; i++)}

return result;

}else

}///

/// 對金鑰處理,返回處理後的金鑰以及金鑰序列

///

///

///

private

string

keyhanding

(string key)

}//不重複時則把它的值取出來,重複的取最後乙個不重複的值if(

!tag)

} newkey +

= key[i]

.tostring()

;// console.writeline(newkey);//獲得新的金鑰

result = newkey;

}else

return result;

}///

/// 獲取序列陣列

///

///

///

private

string

getsequence

(string newkey)

// console.writeline(string.join("", sequence));

int ilength = newkey.length -1;

for(

int i =

0; i < ilength; i++

)else

if(newkey[i]

> newkey[j])}

}// console.writeline(string.join("",sequence));

return

string

.join(""

, sequence);}

///

/// 獲取反序列陣列

///

///

///

private

string

getunsequence

(string newkey)

var listkey = newkey.

tolist()

;for

(int i =

0; i < newkey.length; i++

)// console.writeline(string.join("",sequence));

return

string

.join(""

, sequence);}

///

/// 交換序列順序

///

///

///

///

private list<

string

>

changetheorder

(string resultkey,

list<

string

> ciphertext)

} keynum++;}

return result;

}///

/// 獲取最短組

碼雲keycontrol分支(

公鑰加密演算法

中文名稱 數字簽名 英文名稱 digital signature 定義 以電子形式存在於資料資訊之中的,或作為其附件的或邏輯上與之有聯絡的資料,可用於辨別資料簽署人的身份,並表明簽署人對資料資訊中包含的資訊的認可。應用學科 通訊科技 一級學科 網路安全 二級學科 數字簽名 又稱公鑰數字簽名 電子簽章...

RSA公鑰加密演算法

rsa 離散對數 橢圓曲線是目前三大公鑰加密演算法,rsa是其中應用最多的一種。下面將介紹rsa演算法的理論基礎。公鑰加密或說非對稱加密其作用已經不言而喻,在實際中已經得到大量應用,比如https證書,其中便包含了 的公鑰資訊。非對稱加密與對稱加密最大的區別是,加密與解密使用不同的金鑰,通過公鑰加密...

RSA公鑰加密演算法

公鑰加密或說非對稱加密其作用已經不言而喻,在實際中已經得到大量應用,比如https證書,其中便包含了 的公鑰資訊。非對稱加密與對稱加密最大的區別是,加密與解密使用不同的金鑰,通過公鑰加密的內容只有通過私鑰才能解密,反之亦然。因此,發布者完全可以把公鑰公布於眾,使傳送者便於查詢。與此相反,對稱加密需要...