GettingSignals

[Android]AES暗号化と復号化

2012年8月28日
Posted by hina

Android側で暗号化したデータをサーバに送信し、
サーバ側(php)でデータを復号を行ったときのメモ。

Androidアプリ

String encodeKey = “YOUR_ENCODE_KEY“;
String value = “ENCODE_VALUE”;

// キー生成
SecretKey key = new SecretKeySpec(encodeKey.getBytes(), “AES”);
// 初期化
Cipher cipher = Cipher.getInstance(“AES/ECB/PKCS5Padding”);
cipher.init(Cipher.ENCRYPT_MODE, key);
// エンコード処理
byte[] encryptBin = cipher.doFinal(value.getBytes());
// BASE64に変換
String encodedValue = new String(Base64.encode(encryptBin, Base64.DEFAULT));

サーバ(PHP)

function mc_decrypt($decrypt) {
$mc_key = ‘YOUR_ENCODE_KEY‘;
$decoded = base64_decode($decrypt);
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB), MCRYPT_RAND);
$decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $mc_key, trim($decoded), MCRYPT_MODE_ECB, $iv));
    return rtrim( pkcs5_unpad($decrypted) ); } 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); }

[参照]
http://www.hanatoyume.net/article.php/20090709161343818

Share

Comments are currently closed.

Follow

カレンダー

2024年4月
1234567
891011121314
15161718192021
22232425262728
2930