簡體   English   中英

使用私鑰加密/解密

[英]Encrypt / Decrypt with Private key

我想在我的一些Flash / PHP應用程序中實現一些安全性。

我有一些與PHP文件通信的Flash應用程序,PHP正在將數據作為get字符串發送(例如: name=John&sname=Doe&age=24&balance=12.4 )。 而不是所有這些變量,我希望它發送一個包含這些值的變量(例如: flashvar=jr9afgaw9-fg90agfawf7gw ),因此Flash會解密字符串並獲得真實有用的變量。

我想使用私鑰對其進行加密,並使用相同的私鑰在Flash內部解密。 如果有人想要解碼PHP發送的消息,他將不得不反編譯flash文件並找到我在Flash中使用的私鑰來解碼消息然后解碼它。

我在這里發布的原因是因為我想使用加密算法,只允許使用私鑰進行加密/解密。

我是密碼學領域的新手,我想為此提出一些建議。

謝謝!

“共享私鑰”被稱為對稱密鑰。 目前使用的標准對稱算法是AES 我不知道php或flash是否具備使用AES的能力(Google確實如此),但如果他們這樣做,您可以在代碼中硬編碼AES密鑰並使用它來加密和解密數據。 然而,對密鑰進行硬編碼是非常糟糕的密碼術,並且只是混淆。

要記住的另一件事是您正在使用的密碼模式。 密碼塊鏈接(CBC)需要使用初始化向量(類似於哈希的鹽),因此使用相同密鑰加密但使用不同IV的兩個相同值將導致不同的密文。 ECB不需要初始化向量,但安全性較低。 根據您的需要,我會選擇ECB,因此您不必擔心IV。

谷歌是一種很好的查找信息的方式,你應該使用它。

快速搜索之后,我看到ActionScript 3通過ASCrypt3庫支持加密。 據該網站稱,AES Rijndael得到了支持。

使用mcrypt擴展,PHP也支持Rijndael。 以下是手冊中的一個很好的例子:

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
$text = "Meet me at 11 o'clock behind the monument.";
echo strlen($text) . "\n";

$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
echo strlen($crypttext) . "\n";

如果你想加密數據,我會選擇ASCrypt3o庫。
它運行良好,支持多種類型的加密。
您可以在此處查看其演示,單擊密鑰選項卡。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM