我正在開發移動/服務器安全相關項目。我現在停留在生成Diffie-Hellman密鑰協議部分。它在服務器端程序中工作正常,但它不適用於移動端。因此,我認爲它與Android不兼容。如何在Android中爲Diffie-Hellman密鑰協議算法生成參數集
我用下面的類來獲取參數。它返回一個由3個值組成的以逗號分隔的字符串。第一個數字是質數模數P.第二個數字是基數發生器G.第三個數字是隨機指數L的位數大小。
我的問題是代碼有什麼問題或者它是不可壓縮的對於android?我應該做什麼樣的更改?
你的建議和指導對我來說是非常有幫助的。提前致謝。
public static String genDhParams() {
try {
// Create the parameter generator for a 1024-bit DH key pair
AlgorithmParameterGenerator paramGen = AlgorithmParameterGenerator.getInstance("DH");
paramGen.init(1024);
// Generate the parameters
AlgorithmParameters params = paramGen.generateParameters();
DHParameterSpec dhSpec = (DHParameterSpec)params.getParameterSpec(DHParameterSpec.class);
// Return the three values in a string
return ""+dhSpec.getP()+","+dhSpec.getG()+","+dhSpec.getL();
} catch (NoSuchAlgorithmException e) {
} catch (InvalidParameterSpecException e) {
}
return null;
}
問候,
Sebby
您不能在每臺機器上生成不同的域參數。選擇一組域參數並在任何地方使用它們。域參數不是祕密的,您可以在各種NIST和IETF出版物中找到合適的參數。 – 2010-05-13 01:44:40
感謝您的回覆,GregS。實際上,我希望在移動端生成這些參數。因爲它不工作,我在服務器端嘗試了它,它正在工作。因此我想知道這些代碼是否與android不兼容。 – 2010-05-13 01:52:24
定義「不工作」。 – 2010-05-13 01:53:51