/** * 输出新头像 */ public function getflashHtml() { $password = pkcs5_pad(time()); $userinfo = model('User')->getUserInfo($GLOBALS['ts']['mid']); $defaultImg = $userinfo['avatar_big']; $uploadUrl = urlencode(U('public/Account/doSaveUploadAvatar')); echo ' <embed src="' . THEME_PUBLIC_URL . '/image/face.swf" quality="high" wmode="opaque" FlashVars="uploadServerUrl=' . $uploadUrl . '&defaultImg=' . $defaultImg . '" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="610" height="560"></embed>'; exit; }
function myCrypt($input, $key) { $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; }
function encrypt($plainText, $key) { $secretKey = hextobin(md5($key)); $initVector = pack("C*", 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf); $openMode = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'cbc', ''); $blockSize = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, 'cbc'); $plainPad = pkcs5_pad($plainText, $blockSize); if (mcrypt_generic_init($openMode, $secretKey, $initVector) != -1) { $encryptedText = mcrypt_generic($openMode, $plainPad); mcrypt_generic_deinit($openMode); } return bin2hex($encryptedText); }
function encrypt($input) { $sKey = 'youkang12android'; $iv = '1233211234567741'; $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $input = pkcs5_pad($input, $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); //$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $sKey, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); return $data; }
function idtag_des_encode2($key, $text) { $y = pkcs5_pad($text); $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, ''); //使用MCRYPT_DES算法,cbc模式 $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); $ks = mcrypt_enc_get_key_size($td); mcrypt_generic_init($td, $key, $key); //初始处理 $encrypted = mcrypt_generic($td, $y); //解密 mcrypt_generic_deinit($td); //结束 mcrypt_module_close($td); return base64_encode($encrypted); }
function encrypt($plain_text, $cipher_key) { $iv = "0123456789012345"; $sha_cipher_key = hash("sha256", $cipher_key); $padded_cipher_key = substr($sha_cipher_key, 0, 32); $padded_plain_text = pkcs5_pad($plain_text, 16); // printf("sha256 key is %s\n", $sha_cipher_key); // printf("padded cipher key is %s\n\n", $padded_cipher_key); // printf("padded plain_text is %s\n\n", $padded_plain_text); # This is the way to do AES-256 using mcrypt PHP - its not AES-128 or anything other than that! $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); mcrypt_generic_init($td, $padded_cipher_key, $iv); $encrypted = mcrypt_generic($td, $padded_plain_text); $encode = base64_encode($encrypted); mcrypt_generic_deinit($td); mcrypt_module_close($td); #printf("\nencoded: %s", $encode); return $encode; }
function diaspora_msg_build($msg, $user, $contact, $prvkey, $pubkey, $public = false) { $a = get_app(); if ($public) { return diaspora_pubmsg_build($msg, $user, $contact, $prvkey, $pubkey); } logger('diaspora_msg_build: ' . $msg, LOGGER_DATA); // without a public key nothing will work if (!$pubkey) { logger('diaspora_msg_build: pubkey missing: contact id: ' . $contact['id']); return ''; } $inner_aes_key = random_string(32); $b_inner_aes_key = base64_encode($inner_aes_key); $inner_iv = random_string(16); $b_inner_iv = base64_encode($inner_iv); $outer_aes_key = random_string(32); $b_outer_aes_key = base64_encode($outer_aes_key); $outer_iv = random_string(16); $b_outer_iv = base64_encode($outer_iv); $handle = $user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(), '://') + 3); $padded_data = pkcs5_pad($msg, 16); $inner_encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $inner_aes_key, $padded_data, MCRYPT_MODE_CBC, $inner_iv); $b64_data = base64_encode($inner_encrypted); $b64url_data = base64url_encode($b64_data); $data = str_replace(array("\n", "\r", " ", "\t"), array('', '', '', ''), $b64url_data); $type = 'application/xml'; $encoding = 'base64url'; $alg = 'RSA-SHA256'; $signable_data = $data . '.' . base64url_encode($type) . '.' . base64url_encode($encoding) . '.' . base64url_encode($alg); $signature = rsa_sign($signable_data, $prvkey); $sig = base64url_encode($signature); $decrypted_header = <<<EOT <decrypted_header> <iv>{$b_inner_iv}</iv> <aes_key>{$b_inner_aes_key}</aes_key> <author_id>{$handle}</author_id> </decrypted_header> EOT; $decrypted_header = pkcs5_pad($decrypted_header, 16); $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $outer_aes_key, $decrypted_header, MCRYPT_MODE_CBC, $outer_iv); $outer_json = json_encode(array('iv' => $b_outer_iv, 'key' => $b_outer_aes_key)); $encrypted_outer_key_bundle = ''; openssl_public_encrypt($outer_json, $encrypted_outer_key_bundle, $pubkey); $b64_encrypted_outer_key_bundle = base64_encode($encrypted_outer_key_bundle); logger('outer_bundle: ' . $b64_encrypted_outer_key_bundle . ' key: ' . $pubkey, LOGGER_DATA); $encrypted_header_json_object = json_encode(array('aes_key' => base64_encode($encrypted_outer_key_bundle), 'ciphertext' => base64_encode($ciphertext))); $cipher_json = base64_encode($encrypted_header_json_object); $encrypted_header = '<encrypted_header>' . $cipher_json . '</encrypted_header>'; $magic_env = <<<EOT <?xml version='1.0' encoding='UTF-8'?> <diaspora xmlns="https://joindiaspora.com/protocol" xmlns:me="http://salmon-protocol.org/ns/magic-env" > {$encrypted_header} <me:env> <me:encoding>base64url</me:encoding> <me:alg>RSA-SHA256</me:alg> <me:data type="application/xml">{$data}</me:data> <me:sig>{$sig}</me:sig> </me:env> </diaspora> EOT; logger('diaspora_msg_build: magic_env: ' . $magic_env, LOGGER_DATA); return $magic_env; }
function AES256CBC_encrypt($data, $key, $iv) { return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, str_pad($key, 32, ""), pkcs5_pad($data, 16), MCRYPT_MODE_CBC, str_pad($iv, 16, "")); }
/** * DES加密函数 * * @param string $input * @param string $key */ function desencrypt($input, $key) { $size = mcrypt_get_block_size('des', 'ecb'); $input = pkcs5_pad($input, $size); $td = mcrypt_module_open('des', '', 'ecb', ''); $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); @mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; }
//查詢灌點來源 //查詢灌點來源 case "QueryEmpApproveFund": //查詢待審核名單 $n_xml = $n_TimeStamp; //不需額外傳遞其他參數。 break; } $n_PlainText = $n_ApiKey . "," . $n_xml; //echo '<label for="textarea">明文:</label><textarea name="textarea" id="textarea" style="width:733px; background-color:#CCC; border:#333 1px solid;" rows="5">'.$n_PlainText.'</textarea><br /><br />'; function pkcs5_pad($text, $blocksize) { $pad = $blocksize - strlen($text) % $blocksize; return $text . str_repeat(chr($pad), $pad); } $n_CipherText = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, base64_decode($n_AesKey), pkcs5_pad($n_PlainText, 16), MCRYPT_MODE_CBC, base64_decode($n_AesKeyIV))); //echo '<label for="textarea">密文:</label><textarea name="textarea" id="textarea" style="width:733px; background-color:#CCC; border:#333 1px solid;" rows="5">'.$n_CipherText.'</textarea><br /><br />'; $n_ShaData = $n_TimeStamp . $n_ApiKey . $n_SaltKey . $n_CipherText; $n_Signature = hash_hmac("sha512", $n_ShaData, $n_ShaKey); //echo '<label for="textarea">簽章:</label><textarea name="textarea" id="textarea" style="width:733px; background-color:#CCC; border:#333 1px solid;" rows="5">'.$n_Signature.'</textarea><br /><br />'; switch ($_POST['mode']) { case "AddEmpAccount": //新增員工帳號 //新增員工帳號 case "DepartEmployee": //離職員工 $wsdl = 'http://vm-pp-wf2.shp.tw1.yahoo.net/WebService/EmployeeAccountWebService.asmx?wsdl'; break; case "RechargeEmpFund": //新增員工灌點 //新增員工灌點
<div id="nav"> <ul> <?php $files = glob("./files/*"); foreach ($files as $file) { $time = time(); $fileName = explode("/", $file); $filePlace = sizeof($fileName) - 1; $url = ""; if (isset($_GET['cipher'])) { $url .= "cipher=" . $p_cipher; } if (isset($_GET['encoding'])) { $url .= "&encoding=" . $p_encoding; } print "<li><a href=\"?{$url}&c=" . encode(encrypt(pkcs5_pad(genNonce(16) . "|" . $directory . "/" . $fileName[$filePlace], $blocksize), $cipher, $mode, $key, $iv), $p_encoding) . "\">" . ucwords($fileName[$filePlace]) . "</a></li>"; } ?> </ul> </div> <div id="content"> <h1><?php print $title; ?> </h1> <?php print @$theData; ?> </div> </body> </html>
/** * Php DES encryption function * * @param String $ key key * @param String $ text string * @return String */ function des_encode($key, $text) { $y = pkcs5_pad($text); $td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, ''); //Use MCRYPT_DES algorithm, cbc mode $ks = mcrypt_enc_get_key_size($td); mcrypt_generic_init($td, $key, $key); //Initial treatment $encrypted = mcrypt_generic($td, $y); //Decryption mcrypt_generic_deinit($td); //End mcrypt_module_close($td); return base64_encode($encrypted); }
function chiffrement($decryptedMdp, $IV) { /* Charge un chiffrement */ $td = mcrypt_module_open('rijndael-128', '', 'cbc', ''); $size = mcrypt_get_block_size('rijndael-128', 'cbc'); /* Crée le VI et détermine la taille de la clé */ $iv = imap_base64($IV); /* Crée la clé */ $key = 'a7bc27daf59679de'; $decryptedMdp = pkcs5_pad($decryptedMdp, $size); /* Initialise le module de chiffrement pour le déchiffrement */ mcrypt_generic_init($td, $key, $iv); /* Chiffre les données */ $mdpEncrypted = mcrypt_generic($td, $decryptedMdp); /* Libère le gestionnaire de chiffrement */ mcrypt_generic_deinit($td); return $mdpEncrypted; }
$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); } $input = 'abcdefghijklmnopqrstuwvxyz'; $iv = '00000000'; $key = '1234567890123456'; // $c = mcrypt_module_open('blowfish', '', 'cfb', ''); // mcrypt_generic_init($c, $key, $iv); // $enc = mcrypt_generic($c, $input); // echo (unpack('h*', $enc)[1]) . PHP_EOL; echo ' PHP :: Actual' . PHP_EOL; echo ' IN: ' . strlen($input) . ' :: ' . $input . PHP_EOL; // $input = pkcs5_pad($input, mcrypt_module_get_algo_block_size('blowfish')); $enc = mcrypt_encrypt('blowfish', $key, pkcs5_pad($input, 8), 'ecb', $iv); echo ' ECB OUT: ' . strlen($enc) . ' :: ' . unpack('h*', $enc)[1] . PHP_EOL; $enc = mcrypt_encrypt('blowfish', $key, pkcs5_pad($input, 8), 'cbc', $iv); echo ' CBC OUT: ' . strlen($enc) . ' :: ' . unpack('h*', $enc)[1] . PHP_EOL; $enc = mcrypt_encrypt('blowfish', $key, $input, 'cfb', $iv); echo ' CFB OUT: ' . strlen($enc) . ' :: ' . unpack('h*', $enc)[1] . PHP_EOL; $enc = mcrypt_encrypt('blowfish', $key, $input, 'ncfb', $iv); echo 'NCFB OUT: ' . strlen($enc) . ' :: ' . unpack('h*', $enc)[1] . PHP_EOL; $enc = mcrypt_encrypt('blowfish', $key, $input, 'ofb', $iv); echo ' OFB OUT: ' . strlen($enc) . ' :: ' . unpack('h*', $enc)[1] . PHP_EOL; $enc = mcrypt_encrypt('blowfish', $key, $input, 'nofb', $iv); echo 'NOFB OUT: ' . strlen($enc) . ' :: ' . unpack('h*', $enc)[1] . PHP_EOL;
{ $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); } $key = "20C86125F86DB932D0139D32D9208CEF52BAEC98F1E9BA2A"; $key = pack("H48", $key); $iv = "0102030405060708"; $iv = pack("H16", $iv); $td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, ''); mcrypt_generic_init($td, $key, $iv); $str = base64_encode(mcrypt_generic($td, pkcs5_pad("123456", 8))); echo $str; mcrypt_generic_deinit($td); mcrypt_module_close($td); $td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, ''); mcrypt_generic_init($td, $key, $iv); $ttt = pkcs5_unpad(mdecrypt_generic($td, base64_decode($str))); mcrypt_generic_deinit($td); mcrypt_module_close($td); #echo $ttt;
$cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); $iv_size = mcrypt_enc_get_iv_size($cipher); // AES Key : 'd2cb415e067c7b13' // AES IV : 'e36dc751d0433f05' // HMAC KEY : 'd6cfaad283353507' // Ciphertext(b64): 'Ru7RLA4o+iQZNJXBx0iXtgWSQuV8/uqj6R6M59egKfHhaBFuMTl9Mpsb4yx6\nkgokQAf1HUcLg32zGCPo8bH4Df5RUPXWSUfHNb3cR7Mf5I8=\n' // HMACb16 : '0f291f903f6abc951084bedb2210f48b30c4eb3e1bcce99b0967c5fda99d72a6' // How do you do 256-bit AES encryption in PHP vs. 128-bit AES encryption??? // The answer is: Give it a key that's 32 bytes long as opposed to 16 bytes long. // We're using 16 bytes: $key128 = "d2cb415e067c7b13"; $iv = "e36dc751d0433f05"; $hmac_key = "d6cfaad283353507"; // This is the plain-text to be encrypted: $cleartext = "s_hostname:jonasnuts.blogs.sapo.pt OR s_hostname:jonasnuts.com;1350305502"; $cleartext = pkcs5_pad($cleartext, mcrypt_get_block_size('des', 'cbc')); printf("plainText: %s\n\n", $cleartext); // The mcrypt_generic_init function initializes the cipher by specifying both // the key and the IV. The length of the key determines whether we're doing // 128-bit, 192-bit, or 256-bit encryption. // Let's do 256-bit encryption here: // Now let's do 128-bit encryption: if (mcrypt_generic_init($cipher, $key128, $iv) != -1) { // PHP pads with NULL bytes if $cleartext is not a multiple of the block size.. printf("len: %d", strlen($cleartext)); $cipherText = mcrypt_generic($cipher, $cleartext); mcrypt_generic_deinit($cipher); // Display the result in hex. $b64ciphertext = base64_encode($cipherText); printf("Ciphertext(b64): %s (%d chars)\n", $b64ciphertext, strlen($b64ciphertext)); printf("hmac (hex) : %s\n\n", hash_hmac('sha256', $cipherText, $hmac_key));