在密碼學裡,有一種理想的加密方案,叫做一次一密亂碼本(one-time pad)。one-time pad的演算法有以下要求:
1、金鑰必須隨機產生
2、金鑰不能重複使用
3、金鑰和密文的長度是一樣的。
one-time pad是最安全的加密演算法,雙方一旦安全交換了金鑰,之後交換資訊的過程就是絕對安全的啦。
這種演算法一直在一些要求高度機密的場合使用,據說美國和前蘇聯之間的****、前蘇聯的間諜都是使用one-time pad的方式加密的。
不管超級計算機工作多久,也不管多少人,用什麼方法和技術,具有多大的計算能力,都不可能破解。一
次一密的一種實現方式,
如下:public class onetimepadutil
byte resultbytes = new byte[bytes.length];
for (int i = 0; i < resultbytes.length; ++i)
return resultbytes; }}
使用例子:string plaintext = "溫少";
string keytext = "密碼";
byte plainbytes = plaintext.getbytes();
byte keybytes = keytext.getbytes();
assert plainbytes.length == keybytes.length;
//加密byte cipherbytes = onetimepadutil.xor(plainbytes, keybytes);
//解密byte cipherplainbytes = onetimepadutil.xor(cipherbytes, keybytes);
這是最簡單的加密演算法,但也是最安全的機密演算法。前天和朋友討論到了這個問題,所以寫了這篇文章。
安全 加密演算法
一 對稱加密 1.caesar encrypting凱撒加密法 字母移位。2.vigen re cipher維吉尼亞加密法 加強版凱撒演算法 第i個密文字母 第i個明文本母,第i個金鑰字母 例如 this is a test.金鑰 day 則 明文 thisisatest 金鑰 daydaydayd...
安全加密演算法
在閱讀本文之前,如果您還不了解http,https,ssl tls這幾個概念,請跳轉以下鏈結閱讀該文章 在聊安全加密之前,我們先來看看http協議下瀏覽器與伺服器之間的互動。如上圖所示,我們的瀏覽器訪問伺服器的時候,首先需要建立乙個連線,那麼如何連線呢?我們需要連入網路 這是句廢話,不過這是為後文鋪...
對稱加密演算法 DES加密演算法
一 對稱加密演算法 對稱加密也稱為常規加密 私鑰或單鑰加密。乙個對稱加密由5部分組成 明文 plaintext 這是原始資訊或資料,作為演算法的輸入。加密演算法 encryption algorithm 加密演算法對明文進行各種替換和轉換。金鑰 secret key 金鑰也是演算法的輸入。演算法進行...