フラッシュでの暗号化については、PHPで簡単に解読できるようにアドバイスしてください。フラッシュ用フラッシュ暗号化PHP復号化
1
A
答えて
11
あなたはhttp://code.google.com/p/as3crypto/それが
- をサポートDES
- できAES
- フグ -
- はMD5
- SHA
- X509
- RC4
あなたはmycrypt
http://www.php.net/manual/en/mcrypt.examples.php RSA、DES、AES、Blowfishの、MD5、SHA、X509、RC4上記のすべての暗号化も
のFlashクラスの例
package
{
import flash.display.Sprite;
import flash.utils.ByteArray;
import com.hurlant.crypto.symmetric.ICipher;
import com.hurlant.crypto.symmetric.IVMode;
import com.hurlant.crypto.symmetric.IMode;
import com.hurlant.crypto.symmetric.NullPad;
import com.hurlant.crypto.symmetric.PKCS5;
import com.hurlant.crypto.symmetric.IPad;
import com.hurlant.util.Base64;
import com.hurlant.util.Hex;
import com.hurlant.crypto.Crypto;
public class CryptoCode extends Sprite
{
private var type:String='simple-des-ecb';
private var key:ByteArray;
public function CryptoCode()
{
init();
}
private function init():void
{
key = Hex.toArray(Hex.fromString('TESTTEST'));// can only be 8 characters long
trace(encrypt('TEST TEST'));
trace(decrypt(encrypt('TEST TEST'));
}
private function encrypt(txt:String = ''):String
{
var data:ByteArray = Hex.toArray(Hex.fromString(txt));
var pad:IPad = new PKCS5;
var mode:ICipher = Crypto.getCipher(type, key, pad);
pad.setBlockSize(mode.getBlockSize());
mode.encrypt(data);
return Base64.encodeByteArray(data);
}
private function decrypt(txt:String = ''):String
{
var data:ByteArray = Base64.decodeToByteArray(txt);
var pad:IPad = new PKCS5;
var mode:ICipher = Crypto.getCipher(type, key, pad);
pad.setBlockSize(mode.getBlockSize());
mode.decrypt(data);
return Hex.toString(Hex.fromArray(data));
}
}
}
をサポートを使用することができますPHP PHPクラスの例
class Crypt
{
var $key = NULL;
var $iv = NULL;
var $iv_size = NULL;
function Crypt()
{
$this->init();
}
function init($key = "")
{
$this->key = ($key != "") ? $key : "";
$this->algorithm = MCRYPT_DES;
$this->mode = MCRYPT_MODE_ECB;
$this->iv_size = mcrypt_get_iv_size($this->algorithm, $this->mode);
$this->iv = mcrypt_create_iv($this->iv_size, MCRYPT_RAND);
}
function encrypt($data)
{
$size = mcrypt_get_block_size($this->algorithm, $this->mode);
$data = $this->pkcs5_pad($data, $size);
return base64_encode(mcrypt_encrypt($this->algorithm, $this->key, $data, $this->mode, $this->iv));
}
function decrypt($data)
{
return $this->pkcs5_unpad(rtrim(mcrypt_decrypt($this->algorithm, $this->key, base64_decode($data), $this->mode, $this->iv)));
}
function pkcs5_pad($text, $blocksize)
{
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text)
{
$pad = ord($text{strlen($text)-1});
if ($pad > strlen($text)) return false;
if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false;
return substr($text, 0, -1 * $pad);
}
}
使用フラッシュ
// instance of crypto class
private var _crypto : CryptoCode;
public var myLoader : URLLoader;
// create instance with encryption key
_crypto = new CryptoCode("PASSWORD");
// send crypted string to php script
var variables : URLVariables = new URLVariables();
variables.message = _crypto.encrypt(tosend_in.text);
// create request with POST method
var request : URLRequest = new URLRequest("http://www.lecrabe.net/wordpress/demo/crypt/scripts/testcrypto.php");
request.method = URLRequestMethod.POST;
request.data = variables;
// send request
myLoader.load(request);
使用PHP
include_once "lib/cryptlib.php";
// init a new instance of Crypto Class
$crypto = new Crypt;
// init with the encryption key
$result = $crypto->init("PASSWORD");
// get the POST data
$messagefromflash = $_POST ["message"];
// decrypt data
$decrypted_messagefromflash = $crypto->decrypt(utf8_decode($messagefromflash));
+4
警告:このコードでは、パスワードをキーとして使用しています。古くなったDES、安全でないモード(ECB)は、相互性保護を提供しません。コードは正しく動作するかもしれませんが、確かに** NOT SECURE **です。 –
関連する問題
- 1. 暗号化PHP、復号化Java
- 2. PHP暗号化&復号化VB.net
- 3. PHPスイッチ:暗号化と復号化
- 4. RSA暗号化/復号化
- 5. 暗号化と復号化
- 6. AES暗号化/復号化
- 7. 暗号化/復号化soll
- 8. 復号化、暗号化
- 9. アンドロイド/ PHP - 暗号化と復号
- 10. 暗号ブロックチェーンの復号XOR「暗号化」
- 11. カスタム暗号化暗号化/復号化ストリーム
- 12. php暗号化から暗号文を復号できない
- 13. AES256暗号化/復号化の速度
- 14. SWIFTの暗号化と復号化
- 15. 別ファイルのXML暗号化/復号化
- 16. Muleコミュニティ版の暗号化/復号化
- 17. RSA暗号化/復号化の実装
- 18. 暗号化復号化音声
- 19. ファイルの暗号化と復号化
- 20. パスワードの暗号化/復号化スプリングセキュリティ
- 21. ESP8266 AESの暗号化 - 復号化
- 22. DataTableオブジェクトの暗号化と復号化
- 23. ASP.net ViewStateの暗号化と復号化
- 24. ESAPIの暗号化と復号化
- 25. Md5ハッシュの暗号化と復号化
- 26. Twofishによる暗号化/復号化
- 27. 暗号化python /復号化android
- 28. Java暗号化(PBEWithMD5AndDES)の復号化(PBEWithMD5AndDES)
- 29. ファイルの復号化と暗号化
- 30. SQL Serverの暗号化と復号化
Depentsば完全にあなたのためにそれを使用しようとしているかについて。具体的に。 – Sietse