解密函式:
四、實現**(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證書,其中便包含了 的公鑰資訊。非對稱加密與對稱加密最大的區別是,加密與解密使用不同的金鑰,通過公鑰加密的內容只有通過私鑰才能解密,反之亦然。因此,發布者完全可以把公鑰公布於眾,使傳送者便於查詢。與此相反,對稱加密需要...