我對公鑰密碼學背後的想法非常着迷,並坐下來用我自己的Client <- Server -> Client
例子使用Java。只需簡單地來回編碼使用最終祕密的消息。執行公鑰加密算法背後的數學
我最初遇到的問題是技術之一。在演示中,筆者決定方程的結果:
3^(24 * 54) mod 17
一個值:
= 1
但我的問題是,怎麼將接近這樣的計算Java中大量?
或者是提供的示例只是簡單的說明:示例,而不是實際的計算方法?
我對公鑰密碼學背後的想法非常着迷,並坐下來用我自己的Client <- Server -> Client
例子使用Java。只需簡單地來回編碼使用最終祕密的消息。執行公鑰加密算法背後的數學
我最初遇到的問題是技術之一。在演示中,筆者決定方程的結果:
3^(24 * 54) mod 17
一個值:
= 1
但我的問題是,怎麼將接近這樣的計算Java中大量?
或者是提供的示例只是簡單的說明:示例,而不是實際的計算方法?
它必須有一個很好的數學原因(Daniel Fischer似乎有一個)。在任何情況下,可以使用一個BigInteger:
public static void main(String[] args) {
BigInteger bi = new BigInteger("3")
.modPow(new BigInteger(String.valueOf(24 * 54)), new BigInteger("17"));
System.out.println(bi);
}
,其通過重複平方輸出1.
有趣!我還發現'valueOf()'靜態方法 - 它似乎稍微容易使用:'BigInteger.valueOf(3).modPow(BigInteger.valueOf(24 * 54),BigInteger.valueOf(17))' –
重點稍微簡單一點。重物很重。 :( –
對於我的生活,我仍然不知道爲什麼沒有一個BigInteger構造函數能夠接受數字文字 – Wug
您需要使用BigInteger類來處理如此大的數字。它提供對大整數的算術運算。
模冪。如果沒有人闡述,直到我從晚餐回來,我會。 –
維基百科鏈接:http://en.wikipedia.org/wiki/Modular_exponentiation – assylias