我們有一個應用程序,我們從一個產品設計工具中提取一些機密信息。因此,我們使用HTTPS作爲通道,並且在將請求參數和一些數據發送給Web服務之前,我們正在對其進行加密。所以,一切似乎都很好。在Flex 3中實現加密有什麼最佳方法嗎?
但是,當我們給安全審計的應用程序時,他們發現我們已經在源代碼中對加密密鑰進行了硬編碼。他們使用Sothink SWF Decompiler來查看我的SWF文件。他們抓住了關鍵並對此提出了擔憂。
我們使用Flex 3(SDK 3.4)開發了這個應用程序。有沒有最好的方法來使用密鑰,而不是在源代碼中進行硬編碼。如果有人遇到這種問題,請告訴我。
任何人,請建議我在SourceCode中使用密鑰而不是硬編碼的最佳方式。
這裏是我的示例代碼:
var currentResult:String = "";
var strDataToEncrypt:String = "";
var kdata:ByteArray;
var todayDate:Date = new Date();
kdata = Hex.toArray(Hex.fromString("secretKey here"));
strDataToEncrypt =username.toUpperCase() + "#$#" + password + "#$#" + todayDate.getTime().toString();
var data:ByteArray;
data = Hex.toArray(Hex.fromString(strDataToEncrypt))
var name:String = "des3-ecb";
var pad:IPad = new PKCS5;
var mode:ICipher = Crypto.getCipher(name, kdata, pad);
pad.setBlockSize(mode.getBlockSize());
mode.encrypt(data);
currentResult = Base64.encodeByteArray(data);
var token:String = currentResult;
我曾嘗試過幾個混淆器和加密器。仍然Sothink反編譯器能夠反編譯它。有什麼好的混淆器和加密器可用?請建議我幾個。 – Dinesh 2011-04-13 10:17:50